Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3fe26fa3 authored by Al Viro's avatar Al Viro
Browse files

x86: get rid of pt_regs argument in sigreturn variants



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent b3af11af
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -215,8 +215,9 @@ static int ia32_restore_sigcontext(struct pt_regs *regs,
	return err;
}

asmlinkage long sys32_sigreturn(struct pt_regs *regs)
asmlinkage long sys32_sigreturn(void)
{
	struct pt_regs *regs = current_pt_regs();
	struct sigframe_ia32 __user *frame = (struct sigframe_ia32 __user *)(regs->sp-8);
	sigset_t set;
	unsigned int ax;
@@ -241,8 +242,9 @@ asmlinkage long sys32_sigreturn(struct pt_regs *regs)
	return 0;
}

asmlinkage long sys32_rt_sigreturn(struct pt_regs *regs)
asmlinkage long sys32_rt_sigreturn(void)
{
	struct pt_regs *regs = current_pt_regs();
	struct rt_sigframe_ia32 __user *frame;
	sigset_t set;
	unsigned int ax;
+5 −6
Original line number Diff line number Diff line
@@ -456,17 +456,16 @@ ia32_badsys:
	ALIGN
GLOBAL(\label)
	leaq \func(%rip),%rax
	leaq -ARGOFFSET+8(%rsp),\arg	/* 8 for return address */
	jmp  ia32_ptregs_common	
	.endm

	CFI_STARTPROC32

	PTREGSCALL stub32_rt_sigreturn, sys32_rt_sigreturn, %rdi
	PTREGSCALL stub32_sigreturn, sys32_sigreturn, %rdi
	PTREGSCALL stub32_execve, compat_sys_execve, %rcx
	PTREGSCALL stub32_fork, sys_fork, %rdi
	PTREGSCALL stub32_vfork, sys_vfork, %rdi
	PTREGSCALL stub32_rt_sigreturn, sys32_rt_sigreturn
	PTREGSCALL stub32_sigreturn, sys32_sigreturn
	PTREGSCALL stub32_execve, compat_sys_execve
	PTREGSCALL stub32_fork, sys_fork
	PTREGSCALL stub32_vfork, sys_vfork

	ALIGN
GLOBAL(stub32_clone)
+2 −2
Original line number Diff line number Diff line
@@ -69,8 +69,8 @@ asmlinkage long sys32_fallocate(int, int, unsigned,

/* ia32/ia32_signal.c */
asmlinkage long sys32_sigsuspend(int, int, old_sigset_t);
asmlinkage long sys32_sigreturn(struct pt_regs *);
asmlinkage long sys32_rt_sigreturn(struct pt_regs *);
asmlinkage long sys32_sigreturn(void);
asmlinkage long sys32_rt_sigreturn(void);

/* ia32/ipc32.c */
asmlinkage long sys32_ipc(u32, int, int, int, compat_uptr_t, u32);
+2 −2
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@ asmlinkage long sys_iopl(unsigned int);
asmlinkage int sys_modify_ldt(int, void __user *, unsigned long);

/* kernel/signal.c */
long sys_rt_sigreturn(struct pt_regs *);
long sys_rt_sigreturn(void);

/* kernel/tls.c */
asmlinkage int sys_set_thread_area(struct user_desc __user *);
@@ -37,7 +37,7 @@ asmlinkage int sys_get_thread_area(struct user_desc __user *);
asmlinkage int sys_sigsuspend(int, int, old_sigset_t);
asmlinkage int sys_sigaction(int, const struct old_sigaction __user *,
			     struct old_sigaction __user *);
unsigned long sys_sigreturn(struct pt_regs *);
unsigned long sys_sigreturn(void);

/* kernel/vm86_32.c */
int sys_vm86old(struct vm86_struct __user *, struct pt_regs *);
+0 −23
Original line number Diff line number Diff line
@@ -702,12 +702,6 @@ END(syscall_badsys)
/*
 * System calls that need a pt_regs pointer.
 */
#define PTREGSCALL0(name) \
ENTRY(ptregs_##name) ;  \
	leal 4(%esp),%eax; \
	jmp sys_##name; \
ENDPROC(ptregs_##name)

#define PTREGSCALL1(name) \
ENTRY(ptregs_##name) ; \
	leal 4(%esp),%edx; \
@@ -723,23 +717,6 @@ ENTRY(ptregs_##name) ; \
	jmp sys_##name; \
ENDPROC(ptregs_##name)

#define PTREGSCALL3(name) \
ENTRY(ptregs_##name) ; \
	CFI_STARTPROC; \
	leal 4(%esp),%eax; \
	pushl_cfi %eax; \
	movl PT_EDX(%eax),%ecx; \
	movl PT_ECX(%eax),%edx; \
	movl PT_EBX(%eax),%eax; \
	call sys_##name; \
	addl $4,%esp; \
	CFI_ADJUST_CFA_OFFSET -4; \
	ret; \
	CFI_ENDPROC; \
ENDPROC(ptregs_##name)

PTREGSCALL0(sigreturn)
PTREGSCALL0(rt_sigreturn)
PTREGSCALL2(vm86)
PTREGSCALL1(vm86old)

Loading