[ARM] Fix sys_sendto and sys_recvfrom 6-arg syscalls
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Sat, 17 Dec 2005 15:25:42 +0000 (15:25 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 17 Dec 2005 15:25:42 +0000 (15:25 +0000)
Rather than providing more wrappers for 6-arg syscalls, arrange for
them to be supported as standard.  This just means that we always
store the 6th argument on the stack, rather than in the wrappers.

This means we eliminate the wrappers for:
* sys_futex
* sys_arm_fadvise64_64
* sys_mbind
* sys_ipc

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/kernel/calls.S
arch/arm/kernel/entry-common.S

index 2ad4aa2a1536c1ca22e1843352cdd9d2ac9cfbb7..55076a75e5bf3794de942c7f7abe3e1993bfb18e 100644 (file)
@@ -131,7 +131,7 @@ __syscall_start:
                .long   sys_wait4
 /* 115 */      .long   sys_swapoff
                .long   sys_sysinfo
-               .long   sys_ipc_wrapper
+               .long   sys_ipc
                .long   sys_fsync
                .long   sys_sigreturn_wrapper
 /* 120 */      .long   sys_clone_wrapper
@@ -254,7 +254,7 @@ __syscall_start:
                .long   sys_fremovexattr
                .long   sys_tkill
                .long   sys_sendfile64
-/* 240 */      .long   sys_futex_wrapper
+/* 240 */      .long   sys_futex
                .long   sys_sched_setaffinity
                .long   sys_sched_getaffinity
                .long   sys_io_setup
@@ -284,7 +284,7 @@ __syscall_start:
                .long   sys_fstatfs64
                .long   sys_tgkill
                .long   sys_utimes
-/* 270 */      .long   sys_arm_fadvise64_64_wrapper
+/* 270 */      .long   sys_arm_fadvise64_64
                .long   sys_pciconfig_iobase
                .long   sys_pciconfig_read
                .long   sys_pciconfig_write
@@ -333,7 +333,7 @@ __syscall_start:
                .long   sys_inotify_init
                .long   sys_inotify_add_watch
                .long   sys_inotify_rm_watch
-               .long   sys_mbind_wrapper
+               .long   sys_mbind
 /* 320 */      .long   sys_get_mempolicy
                .long   sys_set_mempolicy
 __syscall_end:
index f7f18307523754ba6fda73990ac5033e08cf1f70..e2b42997ad33ee0f1da6ec4a75440d16ce3c3b06 100644 (file)
@@ -145,7 +145,7 @@ ENTRY(vector_swi)
 #endif
        enable_irq
 
-       str     r4, [sp, #-S_OFF]!              @ push fifth arg
+       stmdb   sp!, {r4, r5}                   @ push fifth and sixth args
 
        get_thread_info tsk
        ldr     ip, [tsk, #TI_FLAGS]            @ check for syscall tracing
@@ -204,7 +204,7 @@ ENTRY(sys_call_table)
  * Special system call wrappers
  */
 @ r0 = syscall number
-@ r5 = syscall table
+@ r8 = syscall table
                .type   sys_syscall, #function
 sys_syscall:
                eor     scno, r0, #__NR_SYSCALL_BASE
@@ -255,22 +255,6 @@ 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
-
-sys_arm_fadvise64_64_wrapper:
-               str     r5, [sp, #4]            @ push r5 to stack
-               b       sys_arm_fadvise64_64
-
-sys_mbind_wrapper:
-               str     r5, [sp, #4]
-               b       sys_mbind
-
-sys_ipc_wrapper:
-               str     r5, [sp, #4]            @ push sixth arg
-               b       sys_ipc
-
 /*
  * Note: off_4k (r5) is always units of 4K.  If we can't do the requested
  * offset, we return EINVAL.