rcu: permit discontiguous cpu_possible_mask CPU numbering

TREE_RCU assumes that CPU numbering is contiguous, but some users need
large holes in the numbering to better map to hardware layout.  This patch
makes TREE_RCU (and TREE_PREEMPT_RCU) tolerate large holes in the CPU
numbering.  However, NR_CPUS must still be greater than the largest
CPU number.

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
This commit is contained in:
Paul E. McKenney 2010-04-14 16:48:11 -07:00
parent 4300aa642c
commit 4a90a0681c

View File

@ -1913,7 +1913,7 @@ static void __init rcu_init_one(struct rcu_state *rsp)
rnp = rsp->level[NUM_RCU_LVLS - 1];
for_each_possible_cpu(i) {
if (i > rnp->grphi)
while (i > rnp->grphi)
rnp++;
rsp->rda[i]->mynode = rnp;
rcu_boot_init_percpu_data(i, rsp);