/* 6) RCU priority boosting. */
        struct task_struct *rcu_cpu_kthread_task;
                                        /* rcuc per-CPU kthread or NULL. */
+       unsigned int rcu_cpu_kthread_status;
+                                       /* Running status for rcuc. */
 
        /* 7) Diagnostic data, including RCU CPU stall warnings. */
        unsigned int softirq_snap;      /* Snapshot of softirq activity. */
 int rcu_dynticks_snap(struct rcu_data *rdp);
 
 #ifdef CONFIG_RCU_BOOST
-DECLARE_PER_CPU(unsigned int, rcu_cpu_kthread_status);
 DECLARE_PER_CPU(int, rcu_cpu_kthread_cpu);
 DECLARE_PER_CPU(unsigned int, rcu_cpu_kthread_loops);
 DECLARE_PER_CPU(char, rcu_cpu_has_work);
 
 /*
  * Control variables for per-CPU and per-rcu_node kthreads.
  */
-DEFINE_PER_CPU(unsigned int, rcu_cpu_kthread_status);
 DEFINE_PER_CPU(unsigned int, rcu_cpu_kthread_loops);
 DEFINE_PER_CPU(char, rcu_cpu_has_work);
 
        if (__this_cpu_read(rcu_data.rcu_cpu_kthread_task) != NULL &&
            current != __this_cpu_read(rcu_data.rcu_cpu_kthread_task)) {
                rcu_wake_cond(__this_cpu_read(rcu_data.rcu_cpu_kthread_task),
-                             __this_cpu_read(rcu_cpu_kthread_status));
+                             __this_cpu_read(rcu_data.rcu_cpu_kthread_status));
        }
        local_irq_restore(flags);
 }
 
 static void rcu_cpu_kthread_park(unsigned int cpu)
 {
-       per_cpu(rcu_cpu_kthread_status, cpu) = RCU_KTHREAD_OFFCPU;
+       per_cpu(rcu_data.rcu_cpu_kthread_status, cpu) = RCU_KTHREAD_OFFCPU;
 }
 
 static int rcu_cpu_kthread_should_run(unsigned int cpu)
  */
 static void rcu_cpu_kthread(unsigned int cpu)
 {
-       unsigned int *statusp = this_cpu_ptr(&rcu_cpu_kthread_status);
+       unsigned int *statusp = this_cpu_ptr(&rcu_data.rcu_cpu_kthread_status);
        char work, *workp = this_cpu_ptr(&rcu_cpu_has_work);
        int spincnt;