diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2010-04-14 19:48:11 -0400 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2010-05-10 14:08:35 -0400 |
commit | 4a90a0681cf6cd21cd444184302aa045156486b3 (patch) | |
tree | 5e54587e0844d51f6c015f4c489cbf021c9db509 | |
parent | 4300aa642cc9ecb35f2e0683dd294fb790ef028c (diff) |
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>
-rw-r--r-- | kernel/rcutree.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/rcutree.c b/kernel/rcutree.c index f391886be8f0..c60fd74e7ec9 100644 --- a/kernel/rcutree.c +++ b/kernel/rcutree.c | |||
@@ -1913,7 +1913,7 @@ static void __init rcu_init_one(struct rcu_state *rsp) | |||
1913 | 1913 | ||
1914 | rnp = rsp->level[NUM_RCU_LVLS - 1]; | 1914 | rnp = rsp->level[NUM_RCU_LVLS - 1]; |
1915 | for_each_possible_cpu(i) { | 1915 | for_each_possible_cpu(i) { |
1916 | if (i > rnp->grphi) | 1916 | while (i > rnp->grphi) |
1917 | rnp++; | 1917 | rnp++; |
1918 | rsp->rda[i]->mynode = rnp; | 1918 | rsp->rda[i]->mynode = rnp; |
1919 | rcu_boot_init_percpu_data(i, rsp); | 1919 | rcu_boot_init_percpu_data(i, rsp); |