|
@@ -145,17 +145,16 @@ static void check_cpu_stall(struct rcu_ctrlblk *rcp)
|
|
|
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,
|
|
|
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)
|