diff options
Diffstat (limited to 'kernel/signal.c')
-rw-r--r-- | kernel/signal.c | 11 |
1 files changed, 1 insertions, 10 deletions
diff --git a/kernel/signal.c b/kernel/signal.c index 80789a59b4db..d7611f189ef7 100644 --- a/kernel/signal.c +++ b/kernel/signal.c | |||
@@ -513,16 +513,7 @@ static int __dequeue_signal(struct sigpending *pending, sigset_t *mask, | |||
513 | { | 513 | { |
514 | int sig = 0; | 514 | int sig = 0; |
515 | 515 | ||
516 | /* SIGKILL must have priority, otherwise it is quite easy | 516 | sig = next_signal(pending, mask); |
517 | * to create an unkillable process, sending sig < SIGKILL | ||
518 | * to self */ | ||
519 | if (unlikely(sigismember(&pending->signal, SIGKILL))) { | ||
520 | if (!sigismember(mask, SIGKILL)) | ||
521 | sig = SIGKILL; | ||
522 | } | ||
523 | |||
524 | if (likely(!sig)) | ||
525 | sig = next_signal(pending, mask); | ||
526 | if (sig) { | 517 | if (sig) { |
527 | if (current->notifier) { | 518 | if (current->notifier) { |
528 | if (sigismember(current->notifier_mask, sig)) { | 519 | if (sigismember(current->notifier_mask, sig)) { |