diff options
author | Paul E. McKenney <paul.mckenney@linaro.org> | 2012-06-25 12:54:17 -0700 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2012-07-06 05:55:16 -0700 |
commit | cfca927972e31a5b3da49bf641c525732ff3c357 (patch) | |
tree | d77d787107b706189d4592ef2738901e98814217 | |
parent | cf01537ecf192d9ff15c32a355db5d5af22bea4d (diff) | |
download | linux-cfca927972e31a5b3da49bf641c525732ff3c357.tar.gz linux-cfca927972e31a5b3da49bf641c525732ff3c357.tar.bz2 linux-cfca927972e31a5b3da49bf641c525732ff3c357.zip |
rcu: Introduce check for callback list/count mismatch
The recent bug that introduced the RCU callback list/count mismatch
showed the need for a diagnostic to check for this, which this commit
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>
-rw-r--r-- | kernel/rcutree.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/rcutree.c b/kernel/rcutree.c index 95c7b61e77e4..4154c9567a6d 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); |