On Thu, Mar 30, 2023 at 03:47:07PM -0700, Paul E. McKenney wrote: > The tasks_rcu_exit_srcu variable is used only by kernels built > with CONFIG_TASKS_RCU=y, but is defined for all kernesl with > CONFIG_TASKS_RCU_GENERIC=y. Therefore, in kernels built with > CONFIG_TASKS_RCU_GENERIC=y but CONFIG_TASKS_RCU=n, this gives > a "defined but not used" warning. > > This commit therefore moves this variable under CONFIG_TASKS_RCU. > > Link: https://lore.kernel.org/oe-kbuild-all/202303191536.XzMSyzTl-lkp@xxxxxxxxx/ > Reported-by: kernel test robot <lkp@xxxxxxxxx> > Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxx> > --- > kernel/rcu/tasks.h | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/kernel/rcu/tasks.h b/kernel/rcu/tasks.h > index bfb5e1549f2b..185358c2f08d 100644 > --- a/kernel/rcu/tasks.h > +++ b/kernel/rcu/tasks.h > @@ -136,8 +136,10 @@ static struct rcu_tasks rt_name = \ > .kname = #rt_name, \ > } > > +#ifdef CONFIG_TASKS_RCU > /* Track exiting tasks in order to allow them to be waited for. */ > DEFINE_STATIC_SRCU(tasks_rcu_exit_srcu); > +#endif Reviewed-by: Frederic Weisbecker <frederic@xxxxxxxxxx> BTW should exit_tasks_rcu_start/stop() be defined as static inline stubs whenever !CONFIG_TASKS_RCU ? Currently: * if CONFIG_TASKS_RCU_GENERIC=n, the stubs are as usual (static inline) * if CONFIG_TASKS_RCU_GENERIC=y && CONFIG_TASKS_RCU=n, then the stubs are defined as empty linked function (is the compiler smart enough to remove the empty call?)