rcp->ticks_this_gp++;
        j = jiffies;
        js = ACCESS_ONCE(rcp->jiffies_stall);
---- -  if (*rcp->curtail && ULONG_CMP_GE(j, js)) {
++++ +  if (rcp->rcucblist && ULONG_CMP_GE(j, js)) {
                pr_err("INFO: %s stall on CPU (%lu ticks this GP) idle=%llx (t=%lu jiffies q=%ld)\n",
- ----                 rcp->name, rcp->ticks_this_gp, rcu_dynticks_nesting,
+ ++++                 rcp->name, rcp->ticks_this_gp, DYNTICK_TASK_EXIT_IDLE,
                       jiffies - rcp->gp_start, rcp->qlen);
                dump_stack();
---- -  }
---- -  if (*rcp->curtail && ULONG_CMP_GE(j, js))
                ACCESS_ONCE(rcp->jiffies_stall) = jiffies +
                        3 * rcu_jiffies_till_stall_check() + 3;
---- -  else if (ULONG_CMP_GE(j, js))
++++ +  } else if (ULONG_CMP_GE(j, js)) {
                ACCESS_ONCE(rcp->jiffies_stall) = jiffies + rcu_jiffies_till_stall_check();
++++ +  }
      }
      
      static void reset_cpu_stall_ticks(struct rcu_ctrlblk *rcp)
 
      static int rcu_pending(void);
      
      /*
-----  * Return the number of RCU-sched batches processed thus far for debug & stats.
+++++  * Return the number of RCU batches started thus far for debug & stats.
+ ++   */
 -  - long rcu_batches_completed_sched(void)
+++++ unsigned long rcu_batches_started(void)
+++++ {
+++++   return rcu_state_p->gpnum;
+++++ }
+++++ EXPORT_SYMBOL_GPL(rcu_batches_started);
+++++ 
+++++ /*
+++++  * Return the number of RCU-sched batches started thus far for debug & stats.
 ++ +  */
-  -  long rcu_batches_completed_sched(void)
+++++ unsigned long rcu_batches_started_sched(void)
+++++ {
+++++   return rcu_sched_state.gpnum;
+++++ }
+++++ EXPORT_SYMBOL_GPL(rcu_batches_started_sched);
+++++ 
+++++ /*
+++++  * Return the number of RCU BH batches started thus far for debug & stats.
+++++  */
+++++ unsigned long rcu_batches_started_bh(void)
+++++ {
+++++   return rcu_bh_state.gpnum;
+++++ }
+++++ EXPORT_SYMBOL_GPL(rcu_batches_started_bh);
+++++ 
+++++ /*
+++++  * Return the number of RCU batches completed thus far for debug & stats.
+++++  */
+++++ unsigned long rcu_batches_completed(void)
+++++ {
+++++   return rcu_state_p->completed;
+++++ }
+++++ EXPORT_SYMBOL_GPL(rcu_batches_completed);
+++++ 
+++++ /*
+++++  * Return the number of RCU-sched batches completed thus far for debug & stats.
++ ++  */
  -   long rcu_batches_completed_sched(void)
+++++ unsigned long rcu_batches_completed_sched(void)
      {
        return rcu_sched_state.completed;
      }