[ARM] disable NX support for OABI-supporting kernels
Our signal syscall restart handling for these kernels still uses the userspace stack to build code for restarting the syscall. Unfortunately, fixing this is non-trivial, and so for the time being, we resolve the problem by disabling NX support. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
committed by
Russell King
parent
355532bdda
commit
14f0aa3593
@@ -78,6 +78,15 @@ int arm_elf_read_implies_exec(const struct elf32_hdr *x, int executable_stack)
|
|||||||
return 1;
|
return 1;
|
||||||
if (cpu_architecture() < CPU_ARCH_ARMv6)
|
if (cpu_architecture() < CPU_ARCH_ARMv6)
|
||||||
return 1;
|
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;
|
return 0;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(arm_elf_read_implies_exec);
|
EXPORT_SYMBOL(arm_elf_read_implies_exec);
|
||||||
|
Reference in New Issue
Block a user