aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/entry-armv.S
diff options
context:
space:
mode:
authorNicolas Pitre <nico@cam.org>2006-01-18 17:38:49 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-01-18 17:38:49 -0500
commit5e0974459df9acd6cd0952c98a58816ad820ae66 (patch)
treeac4ae7f47f6060e529694884b70c0cda6278fbd0 /arch/arm/kernel/entry-armv.S
parentfcca538b83f2984095f15f0f90f6c7686e3a32d4 (diff)
[ARM] 3271/1: ARM EABI: fix calling of cmpxchg syscall emulation
Patch from Nicolas Pitre This is kernel provided user space code. Since a syscall is used, it has to be updated to work with EABI. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel/entry-armv.S')
-rw-r--r--arch/arm/kernel/entry-armv.S5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index 874e6bb79405..d401d908c463 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -735,8 +735,11 @@ __kuser_cmpxchg: @ 0xffff0fc0
735 * The kernel itself must perform the operation. 735 * The kernel itself must perform the operation.
736 * A special ghost syscall is used for that (see traps.c). 736 * A special ghost syscall is used for that (see traps.c).
737 */ 737 */
738 stmfd sp!, {r7, lr}
739 mov r7, #0xff00 @ 0xfff0 into r7 for EABI
740 orr r7, r7, #0xf0
738 swi #0x9ffff0 741 swi #0x9ffff0
739 mov pc, lr 742 ldmfd sp!, {r7, pc}
740 743
741#elif __LINUX_ARM_ARCH__ < 6 744#elif __LINUX_ARM_ARCH__ < 6
742 745