rcu: Check for have_rcu_nocb_mask instead of rcu_nocb_mask
If we configure a kernel with CONFIG_NOCB_CPU=y, CONFIG_RCU_NOCB_CPU_NONE=y and CONFIG_CPUMASK_OFFSTACK=n and do not pass in a rcu_nocb= boot parameter, the cpumask rcu_nocb_mask can be garbage instead of NULL. Hence this commit replaces checks for rcu_nocb_mask == NULL with a check for have_rcu_nocb_mask. Signed-off-by: Pranith Kumar <bobby.prani@gmail.com> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Tested-by: Paul Gortmaker <paul.gortmaker@windriver.com>
This commit is contained in:
parent
35ce7f29a4
commit
22c2f66961
|
@ -2578,7 +2578,7 @@ static void __init rcu_organize_nocb_kthreads(struct rcu_state *rsp)
|
||||||
struct rcu_data *rdp_leader = NULL; /* Suppress misguided gcc warn. */
|
struct rcu_data *rdp_leader = NULL; /* Suppress misguided gcc warn. */
|
||||||
struct rcu_data *rdp_prev = NULL;
|
struct rcu_data *rdp_prev = NULL;
|
||||||
|
|
||||||
if (rcu_nocb_mask == NULL)
|
if (!have_rcu_nocb_mask)
|
||||||
return;
|
return;
|
||||||
if (ls == -1) {
|
if (ls == -1) {
|
||||||
ls = int_sqrt(nr_cpu_ids);
|
ls = int_sqrt(nr_cpu_ids);
|
||||||
|
@ -2608,9 +2608,9 @@ static void __init rcu_organize_nocb_kthreads(struct rcu_state *rsp)
|
||||||
/* Prevent __call_rcu() from enqueuing callbacks on no-CBs CPUs */
|
/* Prevent __call_rcu() from enqueuing callbacks on no-CBs CPUs */
|
||||||
static bool init_nocb_callback_list(struct rcu_data *rdp)
|
static bool init_nocb_callback_list(struct rcu_data *rdp)
|
||||||
{
|
{
|
||||||
if (rcu_nocb_mask == NULL ||
|
if (!rcu_is_nocb_cpu(rdp->cpu))
|
||||||
!cpumask_test_cpu(rdp->cpu, rcu_nocb_mask))
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
rdp->nxttail[RCU_NEXT_TAIL] = NULL;
|
rdp->nxttail[RCU_NEXT_TAIL] = NULL;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue