diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-11-14 07:20:31 +0100 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2013-02-04 00:15:56 +0100 |
commit | ac416143b0b4f13ff8f7beb021916e1d714dd87b (patch) | |
tree | 0e91321619a45379baf1b9cd73aad614123758ac /arch/h8300 | |
parent | h8300: switch to generic sigaltstack (diff) | |
download | linux-ac416143b0b4f13ff8f7beb021916e1d714dd87b.tar.xz linux-ac416143b0b4f13ff8f7beb021916e1d714dd87b.zip |
h8300: kill useless wrappers, fix rt_sigreturn(2)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/h8300')
-rw-r--r-- | arch/h8300/kernel/signal.c | 14 | ||||
-rw-r--r-- | arch/h8300/kernel/syscalls.S | 15 |
2 files changed, 6 insertions, 23 deletions
diff --git a/arch/h8300/kernel/signal.c b/arch/h8300/kernel/signal.c index 2d37418c04fb..635ece1c5d20 100644 --- a/arch/h8300/kernel/signal.c +++ b/arch/h8300/kernel/signal.c @@ -129,9 +129,9 @@ struct rt_sigframe } __attribute__((aligned(2),packed)); static inline int -restore_sigcontext(struct pt_regs *regs, struct sigcontext *usc, - int *pd0) +restore_sigcontext(struct sigcontext *usc, int *pd0) { + struct pt_regs *regs = current_pt_regs(); int err = 0; unsigned int ccr; unsigned int usp; @@ -160,9 +160,8 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext *usc, return err; } -asmlinkage int do_sigreturn(unsigned long __unused,...) +asmlinkage int sys_sigreturn(void) { - struct pt_regs *regs = (struct pt_regs *) (&__unused - 1); unsigned long usp = rdusp(); struct sigframe *frame = (struct sigframe *)(usp - 4); sigset_t set; @@ -178,7 +177,7 @@ asmlinkage int do_sigreturn(unsigned long __unused,...) set_current_blocked(&set); - if (restore_sigcontext(regs, &frame->sc, &er0)) + if (restore_sigcontext(&frame->sc, &er0)) goto badframe; return er0; @@ -187,9 +186,8 @@ badframe: return 0; } -asmlinkage int do_rt_sigreturn(unsigned long __unused,...) +asmlinkage int sys_rt_sigreturn(void) { - struct pt_regs *regs = (struct pt_regs *) &__unused; unsigned long usp = rdusp(); struct rt_sigframe *frame = (struct rt_sigframe *)(usp - 4); sigset_t set; @@ -202,7 +200,7 @@ asmlinkage int do_rt_sigreturn(unsigned long __unused,...) set_current_blocked(&set); - if (restore_sigcontext(regs, &frame->uc.uc_mcontext, &er0)) + if (restore_sigcontext(&frame->uc.uc_mcontext, &er0)) goto badframe; if (restore_altstack(&frame->uc.uc_stack)) diff --git a/arch/h8300/kernel/syscalls.S b/arch/h8300/kernel/syscalls.S index b74dd0ade58d..5c2168fb9b9e 100644 --- a/arch/h8300/kernel/syscalls.S +++ b/arch/h8300/kernel/syscalls.S @@ -334,18 +334,3 @@ SYMBOL_NAME_LABEL(sys_call_table) .long SYMBOL_NAME(sys_getcpu) .long SYMBOL_NAME(sys_ni_syscall) /* sys_epoll_pwait */ .long SYMBOL_NAME(sys_setns) /* 320 */ - - .macro call_sp addr - mov.l #SYMBOL_NAME(\addr),er6 - bra SYMBOL_NAME(syscall_trampoline):8 - .endm - -SYMBOL_NAME_LABEL(sys_sigreturn) - call_sp do_sigreturn - -SYMBOL_NAME_LABEL(sys_rt_sigreturn) - call_sp do_rt_sigreturn - -SYMBOL_NAME_LABEL(syscall_trampoline) - mov.l sp,er0 - jmp @er6 |