diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2015-06-04 19:06:01 +0200 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2015-07-17 23:58:41 +0200 |
commit | 13bd64947f53ba8d7199922be94b6626b8e222d7 (patch) | |
tree | 8850f4b145b481d192ec609c55d8611758e9692f /kernel/rcu | |
parent | rcu: Shut up bogus gcc array bounds warning (diff) | |
download | linux-13bd64947f53ba8d7199922be94b6626b8e222d7.tar.xz linux-13bd64947f53ba8d7199922be94b6626b8e222d7.zip |
rcu: Reset rcu_fanout_leaf if out of bounds
Currently if the rcu_fanout_leaf boot parameter is out of bounds (that
is, less than RCU_FANOUT_LEAF or greater than the number of bits in an
unsigned long), a warning is issued and execution continues with the
out-of-bounds value. This can result in all manner of failures, so this
patch resets rcu_fanout_leaf to RCU_FANOUT_LEAF when an out-of-bounds
condition is detected.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'kernel/rcu')
-rw-r--r-- | kernel/rcu/tree.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index e53bbc53bcd5..a2147d7b51c0 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -4103,6 +4103,7 @@ static void __init rcu_init_geometry(void) */ if (rcu_fanout_leaf < RCU_FANOUT_LEAF || rcu_fanout_leaf > sizeof(unsigned long) * 8) { + rcu_fanout_leaf = RCU_FANOUT_LEAF; WARN_ON(1); return; } |