• 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 reason and nobody
    cares to register this domain.
    Signed-off-by: 's avatarOleg Nesterov <oleg@redhat.com>
    Cc: Wenming Zhang <wezhang@redhat.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Signed-off-by: 's avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: 's avatarLinus Torvalds <torvalds@linux-foundation.org>
    2ee7c922
exec_domain.c 4.29 KB