[ARM] 3309/1: disable the pre-ARMv5 NPTL kernel helper in the non MMU case
authorNicolas Pitre <nico@cam.org>
Wed, 8 Feb 2006 21:19:37 +0000 (21:19 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 8 Feb 2006 21:19:37 +0000 (21:19 +0000)
commit49bca4c2815feafd5f999bf43baf87e0dd8d1d08
tree6bc9a59e2fa217d346841418fd45dd704cf61071
parent99595d0237926b5aba1fe4c844a011a1ba1ee1f8
[ARM] 3309/1: disable the pre-ARMv5 NPTL kernel helper in the non MMU case

Patch from Nicolas Pitre

The cmpxchg emulation on pre-ARMv5 relies on user code executed from a
kernel address.  If the operation cannot complete atomically, it is
aborted from the usr_entry macro by clearing the Z flag.  This clearing
of the Z flag is done whenever the user pc is above TASK_SIZE.

However this "pc >= TASK_SIZE" test cannot work in the non MMU case.
Worse: the current code will corrupt the Z flag on every entry to the
kernel.

Let's disable it in the non MMU case for now.  Using NPTL on non MMU
targets needs to be worked out anyway.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/kernel/entry-armv.S