|
@@ -465,7 +465,6 @@ static inline int
|
|
|
handle_signal(unsigned long signr, struct k_sigaction *ka,
|
|
|
siginfo_t *info, sigset_t *oldset, struct pt_regs *regs)
|
|
|
{
|
|
|
- sigset_t blocked;
|
|
|
int err;
|
|
|
|
|
|
if (ka->sa.sa_flags & SA_SIGINFO)
|
|
@@ -476,11 +475,7 @@ handle_signal(unsigned long signr, struct k_sigaction *ka,
|
|
|
if (err)
|
|
|
return err;
|
|
|
|
|
|
- sigorsets(&blocked, ¤t->blocked, &ka->sa.sa_mask);
|
|
|
- if (!(ka->sa.sa_flags & SA_NOMASK))
|
|
|
- sigaddset(&blocked, signr);
|
|
|
- set_current_blocked(&blocked);
|
|
|
-
|
|
|
+ block_sigmask(ka, signr);
|
|
|
tracehook_signal_handler(signr, info, ka, regs, 0);
|
|
|
|
|
|
return 0;
|