kernel virtual memory access (from app) does not generatesegfault
Russell King - ARM Linux
linux at arm.linux.org.uk
Wed Apr 21 15:40:52 EDT 2010
On Wed, Apr 21, 2010 at 08:16:00PM +0100, Jamie Lokier wrote:
> The two-liner proposed earlier should fix all ARMs doing userspace
> execution > TASK_SIZE - the problem which started this thread. But
> not kernel space accidentally executing an NX page > TASK_SIZE due to
> some bug, which can only occur on ARMv6/v7 due to NX.
Sorry James, that's wrong. ARMv6 and ARMv7 use the IFSR, which gives
us the error code - and that distinguishes between a translation fault
and a permission fault. An attempt to execute a NX page generates a
permission fault, and therefore we end up calling do_page_fault() rather
than indirecting via do_translation_fault().
More information about the linux-arm-kernel