Skip to content
  • Oleg Nesterov's avatar
    sys_personality: remove the bogus checks in sys_personality()->__set_personality() path · 2ee7c922
    Oleg Nesterov authored
    Cleanup, no functional changes.
    
    - __set_personality() always changes ->exec_domain/personality, the
      special case when ->exec_domain remains the same buys nothing but
      complicates the code. Unify both cases to simplify the code.
    
    - The -EINVAL check in sys_personality() was never right. If we assume
      that set_personality() can fail we should check the value it returns
      instead of verifying that task->personality was actually changed.
    
      Remove it. Before the previous patch it was possible to hit this case
      due to overflow problems, but this -EINVAL just indicated the kernel
      bug.
    
    OTOH, probably it makes sense to change lookup_exec_domain() to return
    ERR_PTR() instead of default_exec_domain if the search in exec_domains
    list fails, and report this error to the user-space.  But this means
    another user-space change, and we have in-kernel users which need fixes.
    For example, PER_OSF4 falls into PER_MASK for unkown ...
    2ee7c922