|
@@ -3734,30 +3734,26 @@ void rcu_scheduler_starting(void)
|
|
|
* Compute the per-level fanout, either using the exact fanout specified
|
|
|
* or balancing the tree, depending on CONFIG_RCU_FANOUT_EXACT.
|
|
|
*/
|
|
|
-#ifdef CONFIG_RCU_FANOUT_EXACT
|
|
|
static void __init rcu_init_levelspread(struct rcu_state *rsp)
|
|
|
{
|
|
|
int i;
|
|
|
|
|
|
- rsp->levelspread[rcu_num_lvls - 1] = rcu_fanout_leaf;
|
|
|
- for (i = rcu_num_lvls - 2; i >= 0; i--)
|
|
|
- rsp->levelspread[i] = CONFIG_RCU_FANOUT;
|
|
|
-}
|
|
|
-#else /* #ifdef CONFIG_RCU_FANOUT_EXACT */
|
|
|
-static void __init rcu_init_levelspread(struct rcu_state *rsp)
|
|
|
-{
|
|
|
- int ccur;
|
|
|
- int cprv;
|
|
|
- int i;
|
|
|
-
|
|
|
- cprv = nr_cpu_ids;
|
|
|
- for (i = rcu_num_lvls - 1; i >= 0; i--) {
|
|
|
- ccur = rsp->levelcnt[i];
|
|
|
- rsp->levelspread[i] = (cprv + ccur - 1) / ccur;
|
|
|
- cprv = ccur;
|
|
|
+ if (IS_ENABLED(CONFIG_RCU_FANOUT_EXACT)) {
|
|
|
+ rsp->levelspread[rcu_num_lvls - 1] = rcu_fanout_leaf;
|
|
|
+ for (i = rcu_num_lvls - 2; i >= 0; i--)
|
|
|
+ rsp->levelspread[i] = CONFIG_RCU_FANOUT;
|
|
|
+ } else {
|
|
|
+ int ccur;
|
|
|
+ int cprv;
|
|
|
+
|
|
|
+ cprv = nr_cpu_ids;
|
|
|
+ for (i = rcu_num_lvls - 1; i >= 0; i--) {
|
|
|
+ ccur = rsp->levelcnt[i];
|
|
|
+ rsp->levelspread[i] = (cprv + ccur - 1) / ccur;
|
|
|
+ cprv = ccur;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
-#endif /* #else #ifdef CONFIG_RCU_FANOUT_EXACT */
|
|
|
|
|
|
/*
|
|
|
* Helper function for rcu_init() that initializes one rcu_state structure.
|