diff options
Diffstat (limited to 'arch/arm/kernel/elf.c')
-rw-r--r-- | arch/arm/kernel/elf.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/arch/arm/kernel/elf.c b/arch/arm/kernel/elf.c index 9b05c6a0dce..d4a0da1e48f 100644 --- a/arch/arm/kernel/elf.c +++ b/arch/arm/kernel/elf.c | |||
@@ -40,22 +40,15 @@ EXPORT_SYMBOL(elf_check_arch); | |||
40 | void elf_set_personality(const struct elf32_hdr *x) | 40 | void elf_set_personality(const struct elf32_hdr *x) |
41 | { | 41 | { |
42 | unsigned int eflags = x->e_flags; | 42 | unsigned int eflags = x->e_flags; |
43 | unsigned int personality = current->personality & ~PER_MASK; | 43 | unsigned int personality = PER_LINUX_32BIT; |
44 | |||
45 | /* | ||
46 | * We only support Linux ELF executables, so always set the | ||
47 | * personality to LINUX. | ||
48 | */ | ||
49 | personality |= PER_LINUX; | ||
50 | 44 | ||
51 | /* | 45 | /* |
52 | * APCS-26 is only valid for OABI executables | 46 | * APCS-26 is only valid for OABI executables |
53 | */ | 47 | */ |
54 | if ((eflags & EF_ARM_EABI_MASK) == EF_ARM_EABI_UNKNOWN && | 48 | if ((eflags & EF_ARM_EABI_MASK) == EF_ARM_EABI_UNKNOWN) { |
55 | (eflags & EF_ARM_APCS_26)) | 49 | if (eflags & EF_ARM_APCS_26) |
56 | personality &= ~ADDR_LIMIT_32BIT; | 50 | personality = PER_LINUX; |
57 | else | 51 | } |
58 | personality |= ADDR_LIMIT_32BIT; | ||
59 | 52 | ||
60 | set_personality(personality); | 53 | set_personality(personality); |
61 | 54 | ||