bk://bk.arm.linux.org.uk/linux-2.6-rmk nico@org.rmk.(none)[rmk]|ChangeSet|20050203230136|41266 nico # This is a BitKeeper generated diff -Nru style patch. # # ChangeSet # 2005/02/03 23:01:36+00:00 nico@org.rmk.(none) # [ARM PATCH] 2456/1: fix futex syscall argument passing # # Patch from Nicolas Pitre # # sys_futex wrapper to store its sixth argument on the stack. # Also fix a typo with sys_clone_wapper. # # Signed-off-by: Nicolas Pitre # Signed-off-by: Russell King # # arch/arm/kernel/entry-common.S # 2005/02/03 00:00:00+00:00 nico@org.rmk.(none) +5 -1 # [PATCH] 2456/1: fix futex syscall argument passing # # arch/arm/kernel/calls.S # 2005/02/03 00:00:00+00:00 nico@org.rmk.(none) +2 -2 # [PATCH] 2456/1: fix futex syscall argument passing # # ChangeSet # 2005/02/03 22:19:58+00:00 rmk@flint.arm.linux.org.uk # [ARM] Fix sys_syscall # # Signed-off-by: Russell King # # arch/arm/kernel/entry-common.S # 2005/02/03 22:15:02+00:00 rmk@flint.arm.linux.org.uk +9 -7 # Fix two problems with sys_syscall. # # ChangeSet # 2005/02/03 12:27:49-08:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # MAINTAINERS # 2005/02/03 12:27:45-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2005/02/02 20:58:58-08:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # MAINTAINERS # 2005/02/02 20:58:53-08:00 akpm@bix.(none) +0 -0 # Auto merged # # CREDITS # 2005/02/02 20:58:53-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2005/01/28 14:23:08-08:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # MAINTAINERS # 2005/01/28 14:23:02-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2005/01/15 17:59:46-08:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # MAINTAINERS # 2005/01/15 17:59:40-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2005/01/13 16:36:43-08:00 akpm@bix.(none) # Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk # into bix.(none):/usr/src/bk-arm # # MAINTAINERS # 2005/01/13 16:36:39-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2005/01/13 16:33:42-08:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # MAINTAINERS # 2005/01/13 16:33:38-08:00 akpm@bix.(none) +0 -0 # Auto merged # # CREDITS # 2005/01/13 16:33:38-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2005/01/12 12:14:51-08:00 akpm@bix.(none) # Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk # into bix.(none):/usr/src/bk-arm # # MAINTAINERS # 2005/01/12 12:14:47-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2005/01/11 21:32:02-08:00 akpm@bix.(none) # Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk # into bix.(none):/usr/src/bk-arm # # CREDITS # 2005/01/11 21:31:56-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2005/01/11 11:47:36-08:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # MAINTAINERS # 2005/01/11 11:47:31-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2005/01/10 20:25:29-08:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-arm # # MAINTAINERS # 2005/01/10 20:25:24-08:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2005/01/10 14:38:10-08:00 akpm@bix.(none) # Merge bk://bk.arm.linux.org.uk/linux-2.6-rmk # into bix.(none):/usr/src/bk-arm # # MAINTAINERS # 2005/01/10 14:38:06-08:00 akpm@bix.(none) +0 -0 # Auto merged # diff -Nru a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S --- a/arch/arm/kernel/calls.S 2005-02-03 18:16:10 -08:00 +++ b/arch/arm/kernel/calls.S 2005-02-03 18:16:10 -08:00 @@ -134,7 +134,7 @@ .long sys_ipc .long sys_fsync .long sys_sigreturn_wrapper -/* 120 */ .long sys_clone_wapper +/* 120 */ .long sys_clone_wrapper .long sys_setdomainname .long sys_newuname .long sys_ni_syscall @@ -254,7 +254,7 @@ .long sys_fremovexattr .long sys_tkill .long sys_sendfile64 -/* 240 */ .long sys_futex +/* 240 */ .long sys_futex_wrapper .long sys_sched_setaffinity .long sys_sched_getaffinity .long sys_io_setup diff -Nru a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S --- a/arch/arm/kernel/entry-common.S 2005-02-03 18:16:10 -08:00 +++ b/arch/arm/kernel/entry-common.S 2005-02-03 18:16:10 -08:00 @@ -11,6 +11,7 @@ #include #include +#include #include "entry-header.S" @@ -190,13 +191,14 @@ .type sys_syscall, #function sys_syscall: eor scno, r0, #OS_NUMBER << 20 - cmp scno, #NR_syscalls @ check range - stmleia sp, {r5, r6} @ shuffle args - movle r0, r1 - movle r1, r2 - movle r2, r3 - movle r3, r4 - ldrle pc, [tbl, scno, lsl #2] + cmp scno, #__NR_syscall - __NR_SYSCALL_BASE + cmpne scno, #NR_syscalls @ check range + stmloia sp, {r5, r6} @ shuffle args + movlo r0, r1 + movlo r1, r2 + movlo r2, r3 + movlo r3, r4 + ldrlo pc, [tbl, scno, lsl #2] b sys_ni_syscall sys_fork_wrapper: @@ -211,7 +213,7 @@ add r3, sp, #S_OFF b sys_execve -sys_clone_wapper: +sys_clone_wrapper: add ip, sp, #S_OFF str ip, [sp, #4] b sys_clone @@ -235,6 +237,10 @@ sys_sigaltstack_wrapper: ldr r2, [sp, #S_OFF + S_SP] b do_sigaltstack + +sys_futex_wrapper: + str r5, [sp, #4] @ push sixth arg + b sys_futex /* * Note: off_4k (r5) is always units of 4K. If we can't do the requested