sparc: get rid of asm wrapper for nis_syscall()
authorAl Viro <viro@zeniv.linux.org.uk>
Tue, 20 Mar 2018 14:44:21 +0000 (10:44 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Tue, 20 Mar 2018 16:05:17 +0000 (12:05 -0400)
just use current_pt_regs()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
arch/sparc/kernel/entry.S
arch/sparc/kernel/sys_sparc_32.c
arch/sparc/kernel/sys_sparc_64.c
arch/sparc/kernel/syscalls.S
arch/sparc/kernel/systbls.h

index b47917939bc5e78f9d73154afd1b789f52321433..4d369697332557c9f0a3b141c6f7c4fe48e8d2fd 100644 (file)
@@ -801,13 +801,6 @@ SUN_PI_(lda        [%l4] ASI_M_MMUREGS, %l5)       ! read sfsr last
        RESTORE_ALL
 
        .align  4
-       .globl  sys_nis_syscall
-sys_nis_syscall:
-       mov     %o7, %l5
-       add     %sp, STACKFRAME_SZ, %o0         ! pt_regs *regs arg
-       call    c_sys_nis_syscall
-        mov    %l5, %o7
-
 sunos_execv:
        .globl  sunos_execv
        b       sys_execve
index a927be4a51e798c9661c4a8b423b41234cc4f879..a5df89743e06f9e03026505778711b70072833a9 100644 (file)
@@ -127,11 +127,10 @@ SYSCALL_DEFINE5(sparc_remap_file_pages, unsigned long, start, unsigned long, siz
                                    (pgoff >> (PAGE_SHIFT - 12)), flags);
 }
 
-/* we come to here via sys_nis_syscall so it can setup the regs argument */
-asmlinkage unsigned long
-c_sys_nis_syscall (struct pt_regs *regs)
+SYSCALL_DEFINE0(nis_syscall)
 {
        static int count = 0;
+       struct pt_regs *regs = current_pt_regs();
 
        if (count++ > 5)
                return -ENOSYS;
index b929414fa9f2e02143ccd0a51a5026e427378923..c66a396d7afecb4602cbf233c5e44dcc84557284 100644 (file)
@@ -480,10 +480,10 @@ SYSCALL_DEFINE5(64_mremap, unsigned long, addr,   unsigned long, old_len,
        return sys_mremap(addr, old_len, new_len, flags, new_addr);
 }
 
-/* we come to here via sys_nis_syscall so it can setup the regs argument */
-asmlinkage unsigned long c_sys_nis_syscall(struct pt_regs *regs)
+SYSCALL_DEFINE0(nis_syscall)
 {
        static int count;
+       struct pt_regs *regs = current_pt_regs();
        
        /* Don't make the system unusable, if someone goes stuck */
        if (count++ > 5)
index d7d86b95011a78e6ca828192f6d50c148a1ff963..db42b4fb370844b44576d322717b928a5a7ec22a 100644 (file)
@@ -27,9 +27,6 @@ sys32_execveat:
 #endif
 
        .align  32
-sys_nis_syscall:
-       ba,pt   %xcc, c_sys_nis_syscall
-        add    %sp, PTREGS_OFF, %o0
 #ifdef CONFIG_COMPAT
 sys32_sigstack:
        ba,pt   %xcc, do_sys32_sigstack
index 1cb02fa28e9c63a764b224584e009e2216caeedb..bf014267d619febd43ccf0b25d348681b612277a 100644 (file)
@@ -11,7 +11,7 @@
 
 asmlinkage long sys_getpagesize(void);
 asmlinkage long sys_sparc_pipe(void);
-asmlinkage unsigned long c_sys_nis_syscall(struct pt_regs *regs);
+asmlinkage long sys_nis_syscall(void);
 asmlinkage long sys_getdomainname(char __user *name, int len);
 void do_rt_sigreturn(struct pt_regs *regs);
 asmlinkage long sys_mmap(unsigned long addr, unsigned long len,