diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-04-28 02:04:15 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-06-01 12:58:52 -0400 |
commit | efee984c27b67e3ebef40410f35671997441b57c (patch) | |
tree | 53457dba2338f853d34e1754e7f7f960e4a29482 /arch/s390 | |
parent | 17440f171e28e86cc21a4c8fd1fa3c561503f80e (diff) |
new helper: signal_delivered()
Does block_sigmask() + tracehook_signal_handler(); called when
sigframe has been successfully built. All architectures converted
to it; block_sigmask() itself is gone now (merged into this one).
I'm still not too happy with the signature, but that's a separate
story (IMO we need a structure that would contain signal number +
siginfo + k_sigaction, so that get_signal_to_deliver() would fill one,
signal_delivered(), handle_signal() and probably setup...frame() -
take one).
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/s390')
-rw-r--r-- | arch/s390/kernel/compat_signal.c | 6 | ||||
-rw-r--r-- | arch/s390/kernel/signal.c | 6 |
2 files changed, 2 insertions, 10 deletions
diff --git a/arch/s390/kernel/compat_signal.c b/arch/s390/kernel/compat_signal.c index 923baa96c0b0..3c0c19830c37 100644 --- a/arch/s390/kernel/compat_signal.c +++ b/arch/s390/kernel/compat_signal.c | |||
@@ -580,11 +580,7 @@ void handle_signal32(unsigned long sig, struct k_sigaction *ka, | |||
580 | ret = setup_frame32(sig, ka, oldset, regs); | 580 | ret = setup_frame32(sig, ka, oldset, regs); |
581 | if (ret) | 581 | if (ret) |
582 | return; | 582 | return; |
583 | block_sigmask(ka, sig); | 583 | signal_delivered(sig, info, ka, regs, |
584 | /* | ||
585 | * Let tracing know that we've done the handler setup. | ||
586 | */ | ||
587 | tracehook_signal_handler(sig, info, ka, regs, | ||
588 | test_thread_flag(TIF_SINGLE_STEP)); | 584 | test_thread_flag(TIF_SINGLE_STEP)); |
589 | } | 585 | } |
590 | 586 | ||
diff --git a/arch/s390/kernel/signal.c b/arch/s390/kernel/signal.c index 8332a6943384..ac565b44aabb 100644 --- a/arch/s390/kernel/signal.c +++ b/arch/s390/kernel/signal.c | |||
@@ -375,11 +375,7 @@ static void handle_signal(unsigned long sig, struct k_sigaction *ka, | |||
375 | ret = setup_frame(sig, ka, oldset, regs); | 375 | ret = setup_frame(sig, ka, oldset, regs); |
376 | if (ret) | 376 | if (ret) |
377 | return; | 377 | return; |
378 | block_sigmask(ka, sig); | 378 | signal_delivered(sig, info, ka, regs, |
379 | /* | ||
380 | * Let tracing know that we've done the handler setup. | ||
381 | */ | ||
382 | tracehook_signal_handler(sig, info, ka, regs, | ||
383 | test_thread_flag(TIF_SINGLE_STEP)); | 379 | test_thread_flag(TIF_SINGLE_STEP)); |
384 | } | 380 | } |
385 | 381 | ||