]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
rcu: Merge per-RCU-flavor initialization into pre-existing macro
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Sat, 22 Aug 2009 20:56:49 +0000 (13:56 -0700)
committerIngo Molnar <mingo@elte.hu>
Sun, 23 Aug 2009 08:32:38 +0000 (10:32 +0200)
Rename the RCU_DATA_PTR_INIT() macro to RCU_INIT_FLAVOR() and
make it do the rcu_init_one() and rcu_boot_init_percpu_data()
calls.  Merge the loop that was in the original macro with the
loops that were in __rcu_init().

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: laijs@cn.fujitsu.com
Cc: dipankar@in.ibm.com
Cc: akpm@linux-foundation.org
Cc: mathieu.desnoyers@polymtl.ca
Cc: josht@linux.vnet.ibm.com
Cc: dvhltc@us.ibm.com
Cc: niv@us.ibm.com
Cc: peterz@infradead.org
Cc: rostedt@goodmis.org
LKML-Reference: <12509746133916-git-send-email->
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/rcutree.c

index 4d71d4e8b5a82f1668557e388a26eca87c9b1992..7c515082ae84736770857ff0b6b25545a3e6e18a 100644 (file)
@@ -1543,8 +1543,9 @@ static void __init rcu_init_one(struct rcu_state *rsp)
  * Helper macro for __rcu_init().  To be used nowhere else!
  * Assigns leaf node pointers into each CPU's rcu_data structure.
  */
-#define RCU_DATA_PTR_INIT(rsp, rcu_data) \
+#define RCU_INIT_FLAVOR(rsp, rcu_data) \
 do { \
+       rcu_init_one(rsp); \
        rnp = (rsp)->level[NUM_RCU_LVLS - 1]; \
        j = 0; \
        for_each_possible_cpu(i) { \
@@ -1552,6 +1553,7 @@ do { \
                        j++; \
                per_cpu(rcu_data, i).mynode = &rnp[j]; \
                (rsp)->rda[i] = &per_cpu(rcu_data, i); \
+               rcu_boot_init_percpu_data(i, rsp); \
        } \
 } while (0)
 
@@ -1565,14 +1567,8 @@ void __init __rcu_init(void)
 #ifdef CONFIG_RCU_CPU_STALL_DETECTOR
        printk(KERN_INFO "RCU-based detection of stalled CPUs is enabled.\n");
 #endif /* #ifdef CONFIG_RCU_CPU_STALL_DETECTOR */
-       rcu_init_one(&rcu_sched_state);
-       RCU_DATA_PTR_INIT(&rcu_sched_state, rcu_sched_data);
-       for_each_possible_cpu(i)
-               rcu_boot_init_percpu_data(i, &rcu_sched_state);
-       rcu_init_one(&rcu_bh_state);
-       RCU_DATA_PTR_INIT(&rcu_bh_state, rcu_bh_data);
-       for_each_possible_cpu(i)
-               rcu_boot_init_percpu_data(i, &rcu_bh_state);
+       RCU_INIT_FLAVOR(&rcu_sched_state, rcu_sched_data);
+       RCU_INIT_FLAVOR(&rcu_bh_state, rcu_bh_data);
        open_softirq(RCU_SOFTIRQ, rcu_process_callbacks);
 }