Loading arch/arm/include/asm/unistd.h +9 −0 Original line number Diff line number Diff line Loading @@ -402,6 +402,15 @@ #define __ARM_NR_usr32 (__ARM_NR_BASE+4) #define __ARM_NR_set_tls (__ARM_NR_BASE+5) /* * *NOTE*: This is a ghost syscall private to the kernel. Only the * __kuser_cmpxchg code in entry-armv.S should be aware of its * existence. Don't ever use this from user code. */ #ifdef __KERNEL__ #define __ARM_NR_cmpxchg (__ARM_NR_BASE+0x00fff0) #endif /* * The following syscalls are obsolete and no longer available for EABI. */ Loading arch/arm/kernel/entry-armv.S +4 −3 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ #include <mach/entry-macro.S> #include <asm/thread_notify.h> #include <asm/unwind.h> #include <asm/unistd.h> #include "entry-header.S" Loading Loading @@ -908,10 +909,10 @@ __kuser_cmpxchg: @ 0xffff0fc0 * 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 ldr r7, =1f @ it's 20 bits swi __ARM_NR_cmpxchg ldmfd sp!, {r7, pc} 1: .word __ARM_NR_cmpxchg #elif __LINUX_ARM_ARCH__ < 6 Loading arch/arm/kernel/traps.c +1 −1 Original line number Diff line number Diff line Loading @@ -528,7 +528,7 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs) * __kuser_cmpxchg code in entry-armv.S should be aware of its * existence. Don't ever use this from user code. */ case 0xfff0: case NR(cmpxchg): for (;;) { extern void do_DataAbort(unsigned long addr, unsigned int fsr, struct pt_regs *regs); Loading Loading
arch/arm/include/asm/unistd.h +9 −0 Original line number Diff line number Diff line Loading @@ -402,6 +402,15 @@ #define __ARM_NR_usr32 (__ARM_NR_BASE+4) #define __ARM_NR_set_tls (__ARM_NR_BASE+5) /* * *NOTE*: This is a ghost syscall private to the kernel. Only the * __kuser_cmpxchg code in entry-armv.S should be aware of its * existence. Don't ever use this from user code. */ #ifdef __KERNEL__ #define __ARM_NR_cmpxchg (__ARM_NR_BASE+0x00fff0) #endif /* * The following syscalls are obsolete and no longer available for EABI. */ Loading
arch/arm/kernel/entry-armv.S +4 −3 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ #include <mach/entry-macro.S> #include <asm/thread_notify.h> #include <asm/unwind.h> #include <asm/unistd.h> #include "entry-header.S" Loading Loading @@ -908,10 +909,10 @@ __kuser_cmpxchg: @ 0xffff0fc0 * 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 ldr r7, =1f @ it's 20 bits swi __ARM_NR_cmpxchg ldmfd sp!, {r7, pc} 1: .word __ARM_NR_cmpxchg #elif __LINUX_ARM_ARCH__ < 6 Loading
arch/arm/kernel/traps.c +1 −1 Original line number Diff line number Diff line Loading @@ -528,7 +528,7 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs) * __kuser_cmpxchg code in entry-armv.S should be aware of its * existence. Don't ever use this from user code. */ case 0xfff0: case NR(cmpxchg): for (;;) { extern void do_DataAbort(unsigned long addr, unsigned int fsr, struct pt_regs *regs); Loading