瀏覽代碼

sparc: get rid of sys_sparc_pipe() wrappers

just use current_pt_regs()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro 7 年之前
父節點
當前提交
3e3511b3c8

+ 0 - 8
arch/sparc/kernel/entry.S

@@ -813,14 +813,6 @@ sunos_execv:
 	b	sys_execve
 	 clr	%i2
 
-	.align	4
-	.globl	sys_sparc_pipe
-sys_sparc_pipe:
-	mov	%o7, %l5
-	add	%sp, STACKFRAME_SZ, %o0		! pt_regs *regs arg
-	call	sparc_pipe
-	 mov	%l5, %o7
-
 	.align	4
 	.globl	sys_sigstack
 sys_sigstack:

+ 2 - 2
arch/sparc/kernel/sys_sparc_32.c

@@ -73,7 +73,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
  * sys_pipe() is the normal C calling standard for creating
  * a pipe. It's not the way unix traditionally does this, though.
  */
-asmlinkage long sparc_pipe(struct pt_regs *regs)
+SYSCALL_DEFINE0(sparc_pipe)
 {
 	int fd[2];
 	int error;
@@ -81,7 +81,7 @@ asmlinkage long sparc_pipe(struct pt_regs *regs)
 	error = do_pipe_flags(fd, 0);
 	if (error)
 		goto out;
-	regs->u_regs[UREG_I1] = fd[1];
+	current_pt_regs()->u_regs[UREG_I1] = fd[1];
 	error = fd[0];
 out:
 	return error;

+ 2 - 2
arch/sparc/kernel/sys_sparc_64.c

@@ -310,7 +310,7 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
  * sys_pipe() is the normal C calling standard for creating
  * a pipe. It's not the way unix traditionally does this, though.
  */
-SYSCALL_DEFINE1(sparc_pipe_real, struct pt_regs *, regs)
+SYSCALL_DEFINE0(sparc_pipe)
 {
 	int fd[2];
 	int error;
@@ -318,7 +318,7 @@ SYSCALL_DEFINE1(sparc_pipe_real, struct pt_regs *, regs)
 	error = do_pipe_flags(fd, 0);
 	if (error)
 		goto out;
-	regs->u_regs[UREG_I1] = fd[1];
+	current_pt_regs()->u_regs[UREG_I1] = fd[1];
 	error = fd[0];
 out:
 	return error;

+ 0 - 3
arch/sparc/kernel/syscalls.S

@@ -27,9 +27,6 @@ sys32_execveat:
 #endif
 
 	.align	32
-sys_sparc_pipe:
-	ba,pt	%xcc, sys_sparc_pipe_real
-	 add	%sp, PTREGS_OFF, %o0
 sys_nis_syscall:
 	ba,pt	%xcc, c_sys_nis_syscall
 	 add	%sp, PTREGS_OFF, %o0

+ 1 - 1
arch/sparc/kernel/systbls.h

@@ -10,7 +10,7 @@
 #include <asm/utrap.h>
 
 asmlinkage unsigned long sys_getpagesize(void);
-asmlinkage long sparc_pipe(struct pt_regs *regs);
+asmlinkage long sys_sparc_pipe(void);
 asmlinkage unsigned long c_sys_nis_syscall(struct pt_regs *regs);
 asmlinkage long sys_getdomainname(char __user *name, int len);
 void do_rt_sigreturn(struct pt_regs *regs);