hc
2023-11-06 e3e12f52b214121840b44c91de5b3e5af5d3eb84
kernel/kernel/rcu/tree_exp.h
....@@ -472,7 +472,6 @@
472472 static void sync_rcu_exp_select_cpus(struct rcu_state *rsp,
473473 smp_call_func_t func)
474474 {
475
- int cpu;
476475 struct rcu_node *rnp;
477476
478477 trace_rcu_exp_grace_period(rsp->name, rcu_exp_gp_seq_endval(rsp), TPS("reset"));
....@@ -494,13 +493,7 @@
494493 continue;
495494 }
496495 INIT_WORK(&rnp->rew.rew_work, sync_rcu_exp_select_node_cpus);
497
- preempt_disable();
498
- cpu = cpumask_next(rnp->grplo - 1, cpu_online_mask);
499
- /* If all offline, queue the work on an unbound CPU. */
500
- if (unlikely(cpu > rnp->grphi))
501
- cpu = WORK_CPU_UNBOUND;
502
- queue_work_on(cpu, rcu_par_gp_wq, &rnp->rew.rew_work);
503
- preempt_enable();
496
+ queue_work_on(rnp->grplo, rcu_par_gp_wq, &rnp->rew.rew_work);
504497 rnp->exp_need_flush = true;
505498 }
506499