diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index f29d73a7a4051b9a58e3852f81c8dc8b11f43779..18245888b490c1fc6e2d2d03d4341de7af084eb1 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -2015,6 +2015,7 @@ static void push_rt_tasks(struct rq *rq) */ static int rto_next_cpu(struct root_domain *rd) { + int this_cpu = smp_processor_id(); int next; int cpu; @@ -2038,6 +2039,10 @@ static int rto_next_cpu(struct root_domain *rd) rd->rto_cpu = cpu; + /* Do not send IPI to self */ + if (cpu == this_cpu) + continue; + if (cpu < nr_cpu_ids) return cpu;