Re: A bug about system call on ARM

From: Russell King - ARM Linux
Date: Mon Jun 03 2013 - 06:18:30 EST

On Thu, May 30, 2013 at 12:41:12PM +0100, Will Deacon wrote:
> +#if defined(CONFIG_OABI_COMPAT) || !defined(CONFIG_AEABI)
> + /*
> + * We may have faulted trying to load the SWI instruction due to
> + * concurrent page aging on another CPU. In this case, return
> + * back to the swi instruction and fault the page back.
> + */
> +9001:
> + sub lr, lr, #4
> + str lr, [sp, #S_PC]
> + b ret_fast_syscall
> +#endif

The comment is wrong. If we get here, it means that the fault from
trying to loading the instruction can't be fixed up. Arguably, that
should result in a SIGSEGV being sent immediately, but we'll get to
that when we then try to re-load the instruction.

What it means is that the page we were trying to execute has been
unmapped beneath us.

BTW, I notice that the kernel oops was never posted to the list, so it's
impossible for other people following this thread to see what the real
problem is...
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at