From: "Paul E. McKenney" <paulmck@xxxxxxxxxxxxxxxxxx> Date: Tue, 13 Apr 2010 18:49:30 -0700 > On Tue, Apr 13, 2010 at 05:13:06PM -0700, David Miller wrote: >> From: Frederic Weisbecker <fweisbec@xxxxxxxxx> >> Date: Wed, 14 Apr 2010 02:02:27 +0200 >> >> > I just have a guess though.... >> > This seems to always happen from NMI path, and lockdep is disabled on NMI. >> > I suspect the lock_acquire() performed by rcu_read_lock() is just ignored >> > and then the rcu_read_lock_held() check has the wrong result... >> >> Yeah, I bet that's it too. >> >> lock_is_held() can't return anything meaningful while lockdep is >> disabled, which it is during NMIs. > > Ah! So I just need to add a "current->lockdep_recursion" > check to debug_lockdep_rcu_enabled(). And move the function to > kernel/rcutree_plugin.h to avoid #include hell. > > See below for (untested) patch. Looks good to me, Frederic please test :-) -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html