Message ID | 20120705223319.GA27331@linux.vnet.ibm.com |
---|---|
State | Accepted |
Commit | cfca927972e31a5b3da49bf641c525732ff3c357 |
Headers | show |
On Thu, Jul 05, 2012 at 03:33:19PM -0700, Paul E. McKenney wrote: > The recent bug that introduced the RCU callback list/count mismatch > showed the need for a diagnostic to check for this, which this patch > adds. > > Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org> > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org> > diff --git a/kernel/rcutree.c b/kernel/rcutree.c > index 95c7b61..4154c95 100644 > --- a/kernel/rcutree.c > +++ b/kernel/rcutree.c > @@ -1612,6 +1612,7 @@ static void rcu_do_batch(struct rcu_state *rsp, struct rcu_data *rdp) > rdp->n_force_qs_snap = rsp->n_force_qs; > } else if (rdp->qlen < rdp->qlen_last_fqs_check - qhimark) > rdp->qlen_last_fqs_check = rdp->qlen; > + WARN_ON_ONCE((rdp->nxtlist == NULL) != (rdp->qlen == 0)); > > local_irq_restore(flags); > >
diff --git a/kernel/rcutree.c b/kernel/rcutree.c index 95c7b61..4154c95 100644 --- a/kernel/rcutree.c +++ b/kernel/rcutree.c @@ -1612,6 +1612,7 @@ static void rcu_do_batch(struct rcu_state *rsp, struct rcu_data *rdp) rdp->n_force_qs_snap = rsp->n_force_qs; } else if (rdp->qlen < rdp->qlen_last_fqs_check - qhimark) rdp->qlen_last_fqs_check = rdp->qlen; + WARN_ON_ONCE((rdp->nxtlist == NULL) != (rdp->qlen == 0)); local_irq_restore(flags);