powerpc: Clear ELF personality flag if ELFv2 is not requested.
authorJeff Bailey <jeffbailey@google.com>
Sat, 17 May 2014 15:05:43 +0000 (15:05 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 20 May 2014 00:55:59 +0000 (10:55 +1000)
powerpc: Clear ELF personality flag if ELFv2 is not requested.

The POWER kernel uses a personality flag to determine whether it should
be setting up function descriptors or not (per the updated ABI).  This
flag wasn't being cleared on a new process but instead was being
inherited.  The visible effect was that an ELFv2 binary could not execve
to an ELFv1 binary.

Signed-off-by: Jeff Bailey <jeffbailey@google.com>
 arch/powerpc/include/asm/elf.h | 2 ++
 1 file changed, 2 insertions(+)
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/include/asm/elf.h

index 935b5e7a1436dbbead45f9e578f75a024de0366f..888d8f3f2524823ba0cfa04cc24570ee78ffbbfc 100644 (file)
@@ -90,6 +90,8 @@ typedef elf_vrregset_t elf_fpxregset_t;
 do {                                                           \
        if (((ex).e_flags & 0x3) == 2)                          \
                set_thread_flag(TIF_ELF2ABI);                   \
+       else                                                    \
+               clear_thread_flag(TIF_ELF2ABI);                 \
        if ((ex).e_ident[EI_CLASS] == ELFCLASS32)               \
                set_thread_flag(TIF_32BIT);                     \
        else                                                    \