diff options
Diffstat (limited to 'kernel/signal.c')
-rw-r--r-- | kernel/signal.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/kernel/signal.c b/kernel/signal.c index 4922928d91f6..5ccaac505e8d 100644 --- a/kernel/signal.c +++ b/kernel/signal.c | |||
@@ -769,8 +769,7 @@ specific_send_sig_info(int sig, struct siginfo *info, struct task_struct *t) | |||
769 | { | 769 | { |
770 | int ret = 0; | 770 | int ret = 0; |
771 | 771 | ||
772 | if (!irqs_disabled()) | 772 | BUG_ON(!irqs_disabled()); |
773 | BUG(); | ||
774 | assert_spin_locked(&t->sighand->siglock); | 773 | assert_spin_locked(&t->sighand->siglock); |
775 | 774 | ||
776 | /* Short-circuit ignored signals. */ | 775 | /* Short-circuit ignored signals. */ |
@@ -1384,8 +1383,7 @@ send_group_sigqueue(int sig, struct sigqueue *q, struct task_struct *p) | |||
1384 | * the overrun count. Other uses should not try to | 1383 | * the overrun count. Other uses should not try to |
1385 | * send the signal multiple times. | 1384 | * send the signal multiple times. |
1386 | */ | 1385 | */ |
1387 | if (q->info.si_code != SI_TIMER) | 1386 | BUG_ON(q->info.si_code != SI_TIMER); |
1388 | BUG(); | ||
1389 | q->info.si_overrun++; | 1387 | q->info.si_overrun++; |
1390 | goto out; | 1388 | goto out; |
1391 | } | 1389 | } |
@@ -1560,6 +1558,7 @@ static void ptrace_stop(int exit_code, int nostop_code, siginfo_t *info) | |||
1560 | /* Let the debugger run. */ | 1558 | /* Let the debugger run. */ |
1561 | set_current_state(TASK_TRACED); | 1559 | set_current_state(TASK_TRACED); |
1562 | spin_unlock_irq(¤t->sighand->siglock); | 1560 | spin_unlock_irq(¤t->sighand->siglock); |
1561 | try_to_freeze(); | ||
1563 | read_lock(&tasklist_lock); | 1562 | read_lock(&tasklist_lock); |
1564 | if (likely(current->ptrace & PT_PTRACED) && | 1563 | if (likely(current->ptrace & PT_PTRACED) && |
1565 | likely(current->parent != current->real_parent || | 1564 | likely(current->parent != current->real_parent || |