aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/sched.h
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-06-25 06:27:29 -0400
committerIngo Molnar <mingo@elte.hu>2008-06-25 06:27:29 -0400
commit5ce001b0e56638c726270d4f9e05d46d4250dfbb (patch)
treec21cf007ddef99d5e8b23dde9621bd9152e676a8 /include/linux/sched.h
parent7c9f8861e6c9c839f913e49b98c3854daca18f27 (diff)
parent543cf4cb3fe6f6cae3651ba918b9c56200b257d0 (diff)
Merge branch 'linus' into stackprotector
Diffstat (limited to 'include/linux/sched.h')
-rw-r--r--include/linux/sched.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h
index c5181e77f305..f0132f9ef4dd 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -766,7 +766,6 @@ struct sched_domain {
766 struct sched_domain *child; /* bottom domain must be null terminated */ 766 struct sched_domain *child; /* bottom domain must be null terminated */
767 struct sched_group *groups; /* the balancing groups of the domain */ 767 struct sched_group *groups; /* the balancing groups of the domain */
768 cpumask_t span; /* span of all CPUs in this domain */ 768 cpumask_t span; /* span of all CPUs in this domain */
769 int first_cpu; /* cache of the first cpu in this domain */
770 unsigned long min_interval; /* Minimum balance interval ms */ 769 unsigned long min_interval; /* Minimum balance interval ms */
771 unsigned long max_interval; /* Maximum balance interval ms */ 770 unsigned long max_interval; /* Maximum balance interval ms */
772 unsigned int busy_factor; /* less balancing by factor if busy */ 771 unsigned int busy_factor; /* less balancing by factor if busy */
@@ -1847,7 +1846,9 @@ extern void exit_thread(void);
1847extern void exit_files(struct task_struct *); 1846extern void exit_files(struct task_struct *);
1848extern void __cleanup_signal(struct signal_struct *); 1847extern void __cleanup_signal(struct signal_struct *);
1849extern void __cleanup_sighand(struct sighand_struct *); 1848extern void __cleanup_sighand(struct sighand_struct *);
1849
1850extern void exit_itimers(struct signal_struct *); 1850extern void exit_itimers(struct signal_struct *);
1851extern void flush_itimer_signals(void);
1851 1852
1852extern NORET_TYPE void do_group_exit(int); 1853extern NORET_TYPE void do_group_exit(int);
1853 1854
@@ -2037,6 +2038,19 @@ static inline int fatal_signal_pending(struct task_struct *p)
2037 return signal_pending(p) && __fatal_signal_pending(p); 2038 return signal_pending(p) && __fatal_signal_pending(p);
2038} 2039}
2039 2040
2041static inline int signal_pending_state(long state, struct task_struct *p)
2042{
2043 if (!(state & (TASK_INTERRUPTIBLE | TASK_WAKEKILL)))
2044 return 0;
2045 if (!signal_pending(p))
2046 return 0;
2047
2048 if (state & (__TASK_STOPPED | __TASK_TRACED))
2049 return 0;
2050
2051 return (state & TASK_INTERRUPTIBLE) || __fatal_signal_pending(p);
2052}
2053
2040static inline int need_resched(void) 2054static inline int need_resched(void)
2041{ 2055{
2042 return unlikely(test_thread_flag(TIF_NEED_RESCHED)); 2056 return unlikely(test_thread_flag(TIF_NEED_RESCHED));