diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2018-08-17 04:03:35 +0300 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2018-08-17 04:03:35 +0300 |
commit | 8a68060cefa6db0e02600ac35deed0dc2fa6a68f (patch) | |
tree | b3b3dcb255e54777fe1afcb2fec71917541943b1 /arch/alpha/kernel/entry.S | |
parent | 060581c158a66fcc68f8877ccd0d60fd9aeca65e (diff) | |
download | linux-8a68060cefa6db0e02600ac35deed0dc2fa6a68f.tar.xz |
alpha: unify the glue for sigreturn-like syscalls
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/alpha/kernel/entry.S')
-rw-r--r-- | arch/alpha/kernel/entry.S | 30 |
1 files changed, 10 insertions, 20 deletions
diff --git a/arch/alpha/kernel/entry.S b/arch/alpha/kernel/entry.S index 21840e7042f3..2e09248f8324 100644 --- a/arch/alpha/kernel/entry.S +++ b/arch/alpha/kernel/entry.S @@ -791,7 +791,7 @@ ret_from_kernel_thread: /* * Special system calls. Most of these are special in that they either - * have to play switch_stack games or in some way use the pt_regs struct. + * have to play switch_stack games. */ .macro fork_like name @@ -812,35 +812,25 @@ fork_like fork fork_like vfork fork_like clone +.macro sigreturn_like name .align 4 - .globl sys_sigreturn - .ent sys_sigreturn -sys_sigreturn: + .globl sys_\name + .ent sys_\name +sys_\name: .prologue 0 lda $9, ret_from_straced cmpult $26, $9, $9 lda $sp, -SWITCH_STACK_SIZE($sp) - jsr $26, do_sigreturn + jsr $26, do_\name bne $9, 1f jsr $26, syscall_trace_leave 1: br $1, undo_switch_stack br ret_from_sys_call -.end sys_sigreturn +.end sys_\name +.endm - .align 4 - .globl sys_rt_sigreturn - .ent sys_rt_sigreturn -sys_rt_sigreturn: - .prologue 0 - lda $9, ret_from_straced - cmpult $26, $9, $9 - lda $sp, -SWITCH_STACK_SIZE($sp) - jsr $26, do_rt_sigreturn - bne $9, 1f - jsr $26, syscall_trace_leave -1: br $1, undo_switch_stack - br ret_from_sys_call -.end sys_rt_sigreturn +sigreturn_like sigreturn +sigreturn_like rt_sigreturn .align 4 .globl alpha_syscall_zero |