On Fri, Apr 01, 2016 at 12:49:46PM +0200, Sebastian Andrzej Siewior wrote: > * Josh Cartwright | 2016-03-31 00:04:25 [-0500]: > > >diff --git a/include/linux/list_bl.h b/include/linux/list_bl.h > >index 44f0b55..a1bfb3b 100644 > >--- a/include/linux/list_bl.h > >+++ b/include/linux/list_bl.h > >@@ -42,13 +42,16 @@ struct hlist_bl_node { > > struct hlist_bl_node *next, **pprev; > > }; > > > >-static inline void INIT_HLIST_BL_HEAD(struct hlist_bl_head *h) > >-{ > >- h->first = NULL; > > #ifdef CONFIG_PREEMPT_RT_BASE > >- raw_spin_lock_init(&h->lock); > >+#define INIT_HLIST_BL_HEAD(h) \ > >+do { \ > >+ (h)->first = NULL; \ > >+ raw_spin_lock_init(&(h)->lock); \ > >+} while (0) > >+#else > >+#define INIT_HLIST_BL_HEAD(h) \ > >+ (h)->first = NULL; \ > > I switched the else part to > > #define INIT_HLIST_BL_HEAD(h) (h)->first = NULL That works, thanks. I had it wrapped it in do { } while(0);, but checkpatch complained. Anyway, I decided to do some grepping, and this particular case isn't the only one where there might be unintentional lockdep class sharing. I hope to follow up on this when I'm not traveling. Josh -- To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html