On Mon, Feb 11, 2019 at 12:56 AM Vlad Buslov <vla...@mellanox.com> wrote: > +#ifdef CONFIG_PROVE_LOCKING > +static inline bool lockdep_tcf_chain_is_locked(struct tcf_chain *chain) > +{ > + return lockdep_is_held(&chain->filter_chain_lock); > +} > +#else > +static inline bool lockdep_tcf_chain_is_locked(struct tcf_block *chain) > +{ > + return true; > +} > +#endif /* #ifdef CONFIG_PROVE_LOCKING */ > + > +#define tcf_chain_dereference(p, chain) > \ > + rcu_dereference_protected(p, lockdep_tcf_chain_is_locked(chain))
Are you sure you need this #ifdef CONFIG_PROVE_LOCKING? rcu_dereference_protected() should already test CONFIG_PROVE_RCU. Ditto for tcf_proto_dereference().