On Tue, Dec 12, 2023 at 11:04 AM Kalesh Singh <kaleshsingh@xxxxxxxxxx> wrote: > > On Fri, Dec 8, 2023 at 5:06 PM Frederic Weisbecker <frederic@xxxxxxxxxx> wrote: > > > > Under CONFIG_RCU_EXP_KTHREAD=y, the nodes initialization for expedited > > grace periods is queued to a kworker. However if the allocation of that > > kworker failed, the nodes initialization is performed synchronously by > > the caller instead. > > > > Now the check for kworker initialization failure relies on the kworker > > pointer to be NULL while its value might actually encapsulate an > > allocation failure error. > > > > Make sure to handle this case. > > > > Fixes: 9621fbee44df ("rcu: Move expedited grace period (GP) work to RT kthread_worker") > > Cc: Kalesh Singh <kaleshsingh@xxxxxxxxxx> > > Signed-off-by: Frederic Weisbecker <frederic@xxxxxxxxxx> > > --- > > kernel/rcu/tree.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > > index 82f8130d3fe3..055f4817bc70 100644 > > --- a/kernel/rcu/tree.c > > +++ b/kernel/rcu/tree.c > > @@ -4723,6 +4723,7 @@ static void __init rcu_start_exp_gp_kworkers(void) > > rcu_exp_par_gp_kworker = kthread_create_worker(0, par_gp_kworker_name); > > if (IS_ERR_OR_NULL(rcu_exp_par_gp_kworker)) { > > pr_err("Failed to create %s!\n", par_gp_kworker_name); > > + rcu_exp_par_gp_kworker = NULL; > > kthread_destroy_worker(rcu_exp_gp_kworker); > > Hi Frederic, > > Thanks for catching this. I think we need to remove the > kthread_destroy_worker() in this case too. Ahh sorry, that's the other kworker. LGTM. Thanks. > > Otherwise, > > Reviewed-by: Kalesh Singh <kaleshsingh@xxxxxxxxxx> > > --Kalesh > > > return; > > } > > -- > > 2.42.1 > >