diff options
| author | James Morris <jmorris@namei.org> | 2009-06-09 09:27:53 +1000 |
|---|---|---|
| committer | James Morris <jmorris@namei.org> | 2009-06-09 09:27:53 +1000 |
| commit | 0b4ec6e4e01d98e55ae325a41304cccd87fa4c0f (patch) | |
| tree | 1e075fdf4aaf0c5c003564b3f3414bb4a92ef2ed /arch/arm/kernel | |
| parent | 04288f42033607099cebf5ca15ce8dcec3a9688b (diff) | |
| parent | 3af968e066d593bc4dacc021715f3e95ddf0996f (diff) | |
Merge branch 'master' into next
Diffstat (limited to 'arch/arm/kernel')
| -rw-r--r-- | arch/arm/kernel/elf.c | 9 | ||||
| -rw-r--r-- | arch/arm/kernel/entry-armv.S | 5 |
2 files changed, 10 insertions, 4 deletions
diff --git a/arch/arm/kernel/elf.c b/arch/arm/kernel/elf.c index d4a0da1e48f..950391f194c 100644 --- a/arch/arm/kernel/elf.c +++ b/arch/arm/kernel/elf.c @@ -78,6 +78,15 @@ int arm_elf_read_implies_exec(const struct elf32_hdr *x, int executable_stack) return 1; if (cpu_architecture() < CPU_ARCH_ARMv6) return 1; +#if !defined(CONFIG_AEABI) || defined(CONFIG_OABI_COMPAT) + /* + * If we have support for OABI programs, we can never allow NX + * support - our signal syscall restart mechanism relies upon + * being able to execute code placed on the user stack. + */ + return 1; +#else return 0; +#endif } EXPORT_SYMBOL(arm_elf_read_implies_exec); diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index d662a2f1fd8..83b1da6b7ba 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S @@ -815,10 +815,7 @@ __kuser_helper_start: */ __kuser_memory_barrier: @ 0xffff0fa0 - -#if __LINUX_ARM_ARCH__ >= 6 && defined(CONFIG_SMP) - mcr p15, 0, r0, c7, c10, 5 @ dmb -#endif + smp_dmb usr_ret lr .align 5 |
