Browse Source

[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>
Nicolas Pitre 19 năm trước cách đây
mục cha
commit
5e0974459d
1 tập tin đã thay đổi với 4 bổ sung1 xóa
  1. 4 1
      arch/arm/kernel/entry-armv.S

+ 4 - 1
arch/arm/kernel/entry-armv.S

@@ -735,8 +735,11 @@ __kuser_cmpxchg:				@ 0xffff0fc0
 	 * The kernel itself must perform the operation.
 	 * A special ghost syscall is used for that (see traps.c).
 	 */
+	stmfd	sp!, {r7, lr}
+	mov	r7, #0xff00		@ 0xfff0 into r7 for EABI
+	orr	r7, r7, #0xf0
 	swi	#0x9ffff0
-	mov	pc, lr
+	ldmfd	sp!, {r7, pc}
 
 #elif __LINUX_ARM_ARCH__ < 6