summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Bailey <jeffbailey@google.com>2014-05-17 15:05:43 +0000
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2014-05-20 10:55:59 +1000
commit1efc563865dbc3710c5af7bc1540360a6d06192c (patch)
treee78613e17ae0124b6ac3f1289b4190f882ab4d9e
parent21f585073d6347651f2262da187606fa1c4ee16d (diff)
downloadlinux-1efc563865dbc3710c5af7bc1540360a6d06192c.tar.bz2
powerpc: Clear ELF personality flag if ELFv2 is not requested.
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>
-rw-r--r--arch/powerpc/include/asm/elf.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/elf.h b/arch/powerpc/include/asm/elf.h
index 935b5e7a1436..888d8f3f2524 100644
--- a/arch/powerpc/include/asm/elf.h
+++ b/arch/powerpc/include/asm/elf.h
@@ -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 \