diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2010-09-23 21:52:52 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-10-26 08:59:55 -0700 |
commit | caebf9103be2e6a5330c6395a1f9f213edb0c8df (patch) | |
tree | 06275a7bfb1226a42ac7be136b9c07e92086521c /arch/sparc/kernel/rtrap_32.S | |
parent | b18cae4224bde7e5a332c19bc99247b2098ea232 (diff) |
sparc: keep calling do_signal() as long as pending signals remain
Analog of what commit 494486a1d2697f2153199b6501ab5b4d6e15a2bb had done
to alpha (another architecture with similar bug).
One note: in rtrap_32.S part clr %l6 has been a rudiment of left after
commit 28e6103665301ce60634e8a77f0b657c6cc099de (sparc: Fix debugger syscall
restart interactions) has killed %l6 use in there.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/kernel/rtrap_32.S')
-rw-r--r-- | arch/sparc/kernel/rtrap_32.S | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/sparc/kernel/rtrap_32.S b/arch/sparc/kernel/rtrap_32.S index 4da2e1f6629..5f5f74c2c2c 100644 --- a/arch/sparc/kernel/rtrap_32.S +++ b/arch/sparc/kernel/rtrap_32.S @@ -78,9 +78,9 @@ signal_p: call do_notify_resume add %sp, STACKFRAME_SZ, %o0 ! pt_regs ptr - /* Fall through. */ - ld [%sp + STACKFRAME_SZ + PT_PSR], %t_psr - clr %l6 + b signal_p + ld [%curptr + TI_FLAGS], %g2 + ret_trap_continue: sethi %hi(PSR_SYSCALL), %g1 andn %t_psr, %g1, %t_psr |