summaryrefslogtreecommitdiffstats
path: root/arch/sparc/kernel/rtrap_32.S
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2010-09-23 21:52:52 -0700
committerDavid S. Miller <davem@davemloft.net>2010-10-26 08:59:55 -0700
commitcaebf9103be2e6a5330c6395a1f9f213edb0c8df (patch)
tree06275a7bfb1226a42ac7be136b9c07e92086521c /arch/sparc/kernel/rtrap_32.S
parentb18cae4224bde7e5a332c19bc99247b2098ea232 (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.S6
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