diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2005-11-07 03:59:02 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-07 10:53:32 -0500 |
commit | e1c3ad96f662bf1071a71feffadfe0f7604f14e2 (patch) | |
tree | 8cb48c1880ff35d686a5300a7d4879111fdec8c2 /arch | |
parent | aa3a6f456f6ca162d3406a6e2c09a5c928833e4f (diff) |
[PATCH] s390: signal delivery
Always create all signal frames for pending signals before returning to
userspace, not just a single one.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/s390/kernel/entry.S | 4 | ||||
-rw-r--r-- | arch/s390/kernel/entry64.S | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S index 9b30f4cf32c4..27b07730b7b8 100644 --- a/arch/s390/kernel/entry.S +++ b/arch/s390/kernel/entry.S | |||
@@ -288,7 +288,7 @@ sysc_sigpending: | |||
288 | bo BASED(sysc_restart) | 288 | bo BASED(sysc_restart) |
289 | tm __TI_flags+3(%r9),_TIF_SINGLE_STEP | 289 | tm __TI_flags+3(%r9),_TIF_SINGLE_STEP |
290 | bo BASED(sysc_singlestep) | 290 | bo BASED(sysc_singlestep) |
291 | b BASED(sysc_leave) # out of here, do NOT recheck | 291 | b BASED(sysc_work_loop) |
292 | 292 | ||
293 | # | 293 | # |
294 | # _TIF_RESTART_SVC is set, set up registers and restart svc | 294 | # _TIF_RESTART_SVC is set, set up registers and restart svc |
@@ -645,7 +645,7 @@ io_sigpending: | |||
645 | l %r1,BASED(.Ldo_signal) | 645 | l %r1,BASED(.Ldo_signal) |
646 | basr %r14,%r1 # call do_signal | 646 | basr %r14,%r1 # call do_signal |
647 | stnsm __SF_EMPTY(%r15),0xfc # disable I/O and ext. interrupts | 647 | stnsm __SF_EMPTY(%r15),0xfc # disable I/O and ext. interrupts |
648 | b BASED(io_leave) # out of here, do NOT recheck | 648 | b BASED(io_work_loop) |
649 | 649 | ||
650 | /* | 650 | /* |
651 | * External interrupt handler routine | 651 | * External interrupt handler routine |
diff --git a/arch/s390/kernel/entry64.S b/arch/s390/kernel/entry64.S index 7b9b4a2ba1d7..4eb71ffcf484 100644 --- a/arch/s390/kernel/entry64.S +++ b/arch/s390/kernel/entry64.S | |||
@@ -283,7 +283,7 @@ sysc_sigpending: | |||
283 | jo sysc_restart | 283 | jo sysc_restart |
284 | tm __TI_flags+7(%r9),_TIF_SINGLE_STEP | 284 | tm __TI_flags+7(%r9),_TIF_SINGLE_STEP |
285 | jo sysc_singlestep | 285 | jo sysc_singlestep |
286 | j sysc_leave # out of here, do NOT recheck | 286 | j sysc_work_loop |
287 | 287 | ||
288 | # | 288 | # |
289 | # _TIF_RESTART_SVC is set, set up registers and restart svc | 289 | # _TIF_RESTART_SVC is set, set up registers and restart svc |
@@ -684,7 +684,7 @@ io_sigpending: | |||
684 | slgr %r3,%r3 # clear *oldset | 684 | slgr %r3,%r3 # clear *oldset |
685 | brasl %r14,do_signal # call do_signal | 685 | brasl %r14,do_signal # call do_signal |
686 | stnsm __SF_EMPTY(%r15),0xfc # disable I/O and ext. interrupts | 686 | stnsm __SF_EMPTY(%r15),0xfc # disable I/O and ext. interrupts |
687 | j sysc_leave # out of here, do NOT recheck | 687 | j io_work_loop |
688 | 688 | ||
689 | /* | 689 | /* |
690 | * External interrupt handler routine | 690 | * External interrupt handler routine |