On 11/13/2024 4:30 PM, Uladzislau Rezki (Sony) wrote: > A static analyzer for C, Smatch, reports and triggers below > warnings: > > kernel/rcu/rcuscale.c:1215 rcu_scale_init() > warn: inconsistent returns 'global &fullstop_mutex'. > > The checker complains about, we do not unlock the "fullstop_mutex" > mutex, in case of hitting below error path: > > <snip> > ... > if (WARN_ON_ONCE(jiffies_at_lazy_cb - jif_start < 2 * HZ)) { > pr_alert("ERROR: call_rcu() CBs are not being lazy as expected!\n"); > WARN_ON_ONCE(1); > return -1; > ^^^^^^^^^^ > ... > <snip> > > it happens because "-1" is returned right away instead of > doing a proper unwinding. > > Fix it by jumping to "unwind" label instead of returning -1. > > Reviewed-by: Paul E. McKenney <paulmck@xxxxxxxxxx> > Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > Closes: https://lore.kernel.org/rcu/ZxfTrHuEGtgnOYWp@pc636/T/ > Fixes: 084e04fff160 ("rcuscale: Add laziness and kfree tests") > Signed-off-by: Uladzislau Rezki (Sony) <urezki@xxxxxxxxx> > --- Reviewed-by: Neeraj Upadhyay <Neeraj.Upadhyay@xxxxxxx> - Neeraj