|
@@ -682,7 +682,6 @@ static int
|
|
handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka,
|
|
handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka,
|
|
struct pt_regs *regs)
|
|
struct pt_regs *regs)
|
|
{
|
|
{
|
|
- sigset_t blocked;
|
|
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
/* Are we from a system call? */
|
|
/* Are we from a system call? */
|
|
@@ -733,10 +732,7 @@ handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka,
|
|
*/
|
|
*/
|
|
regs->flags &= ~X86_EFLAGS_TF;
|
|
regs->flags &= ~X86_EFLAGS_TF;
|
|
|
|
|
|
- sigorsets(&blocked, ¤t->blocked, &ka->sa.sa_mask);
|
|
|
|
- if (!(ka->sa.sa_flags & SA_NODEFER))
|
|
|
|
- sigaddset(&blocked, sig);
|
|
|
|
- set_current_blocked(&blocked);
|
|
|
|
|
|
+ block_sigmask(ka, sig);
|
|
|
|
|
|
tracehook_signal_handler(sig, info, ka, regs,
|
|
tracehook_signal_handler(sig, info, ka, regs,
|
|
test_thread_flag(TIF_SINGLESTEP));
|
|
test_thread_flag(TIF_SINGLESTEP));
|