X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=include%2Flinux%2Fsched.h;h=12938d438d695b43c338a60f5bfbd1abc2316189;hb=d479c5a1919b4e569dcd3ae9c84ed74a675d0b94;hp=33bb7c539246cc0dac3b93f60fbc81e9bde37b28;hpb=f6aee505c71bbb035dde146caf5a6abbf3ccbe47;p=thirdparty%2Flinux.git diff --git a/include/linux/sched.h b/include/linux/sched.h index 33bb7c539246c..12938d438d695 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -654,6 +654,7 @@ struct task_struct { #ifdef CONFIG_SMP struct llist_node wake_entry; + unsigned int wake_entry_type; int on_cpu; #ifdef CONFIG_THREAD_INFO_IN_TASK /* Current CPU: */ @@ -1730,7 +1731,15 @@ extern char *__get_task_comm(char *to, size_t len, struct task_struct *tsk); }) #ifdef CONFIG_SMP -void scheduler_ipi(void); +static __always_inline void scheduler_ipi(void) +{ + /* + * Fold TIF_NEED_RESCHED into the preempt_count; anybody setting + * TIF_NEED_RESCHED remotely (for the first time) will also send + * this IPI. + */ + preempt_fold_need_resched(); +} extern unsigned long wait_task_inactive(struct task_struct *, long match_state); #else static inline void scheduler_ipi(void) { }