[ARM] Fix sys_sendto and sys_recvfrom 6-arg syscalls
Russell King [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 2ad4aa2..55076a7 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 f7f1830..e2b4299 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.