From 8c4c2a0c0f30529da6b5ee2982930e3c8ecf1c21 Mon Sep 17 00:00:00 2001 From: Matthew Wilcox Date: Thu, 6 Dec 2007 11:15:50 -0500 Subject: [PATCH] --- yaml --- r: 81765 b: refs/heads/master c: f776d12dd16da1b0cd55a1240002c1b31f315d5d h: refs/heads/master i: 81763: 00bed09b95a410f8c4bb5596f514aaa724175381 v: v3 --- [refs] | 2 +- trunk/include/linux/sched.h | 9 ++++++++- trunk/kernel/signal.c | 5 +++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 4911a1427414..f940cee3ad1f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f021a3c2b14d0dd082c2cee890c204d9e1dee52b +refs/heads/master: f776d12dd16da1b0cd55a1240002c1b31f315d5d diff --git a/trunk/include/linux/sched.h b/trunk/include/linux/sched.h index 70d87f2fd23e..95395c143bab 100644 --- a/trunk/include/linux/sched.h +++ b/trunk/include/linux/sched.h @@ -1872,7 +1872,14 @@ static inline int signal_pending(struct task_struct *p) { return unlikely(test_tsk_thread_flag(p,TIF_SIGPENDING)); } - + +extern int FASTCALL(__fatal_signal_pending(struct task_struct *p)); + +static inline int fatal_signal_pending(struct task_struct *p) +{ + return signal_pending(p) && __fatal_signal_pending(p); +} + static inline int need_resched(void) { return unlikely(test_thread_flag(TIF_NEED_RESCHED)); diff --git a/trunk/kernel/signal.c b/trunk/kernel/signal.c index fd4797f30628..657aa16d97cb 100644 --- a/trunk/kernel/signal.c +++ b/trunk/kernel/signal.c @@ -994,6 +994,11 @@ void zap_other_threads(struct task_struct *p) } } +int fastcall __fatal_signal_pending(struct task_struct *tsk) +{ + return sigismember(&tsk->pending.signal, SIGKILL); +} + /* * Must be called under rcu_read_lock() or with tasklist_lock read-held. */