sparc64: Fix SET_PERSONALITY to not clip bits outside of PER_MASK.
authorDavid S. Miller <davem@davemloft.net>
Thu, 7 May 2009 22:36:13 +0000 (15:36 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 7 May 2009 22:36:13 +0000 (15:36 -0700)
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/include/asm/elf_64.h

index 425c2f9be6d5abe1e5e9aa53a157440807817838..d42e393078c49c4cdda59392fdbd56dc1d6f6c6e 100644 (file)
@@ -208,8 +208,9 @@ do {        unsigned long new_flags = current_thread_info()->flags; \
        else                                            \
                clear_thread_flag(TIF_ABI_PENDING);     \
        /* flush_thread will update pgd cache */        \
-       if (current->personality != PER_LINUX32)        \
-               set_personality(PER_LINUX);             \
+       if (personality(current->personality) != PER_LINUX32)   \
+               set_personality(PER_LINUX |             \
+                       (current->personality & (~PER_MASK)));  \
 } while (0)
 
 #endif /* !(__ASM_SPARC64_ELF_H) */