diff options
Diffstat (limited to 'arch/arm/kernel/elf.c')
| -rw-r--r-- | arch/arm/kernel/elf.c | 9 | 
1 files changed, 9 insertions, 0 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); | 
