diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index 837360af7ba7..abe2a00e92ae 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -3405,3 +3405,13 @@ extern struct task_struct *find_process_by_pid(pid_t pid); extern void enqueue_task_core(struct rq *rq, struct task_struct *p, int flags); extern void dequeue_task_core(struct rq *rq, struct task_struct *p, int flags); + +#ifdef CONFIG_SMP +static inline void sched_irq_work_queue(struct irq_work *work) +{ + if (likely(cpu_online(raw_smp_processor_id()))) + irq_work_queue(work); + else + irq_work_queue_on(work, cpumask_any(cpu_online_mask)); +} +#endif