Giuseppe Scrivano <gscrivan@xxxxxxxxxx> wrote: > > However, I suggest you try to go with call_rcu to get rid of all of the > > synchronize_net() calls. I don't even see why its still needed for > > nfqueue case provided we invoke the nfqueue drop handler first. > > > > PoC example, untested: > > thanks, the patch seems to work for me, at least the problem I was > seeing before is now fixed. > > Is there any reason for defining "struct nf_hook_entries_rcu_head"? Yes, idea is to only place elements we need in packet path at the beginning of structure. > I've used this fixup patch and it works as well. As someone new to the > code, I find it a bit easier to follow: > > > diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h > index c08fd706d9c7..663046776def 100644 > --- a/include/linux/netfilter.h > +++ b/include/linux/netfilter.h > @@ -77,12 +77,8 @@ struct nf_hook_entry { > void *priv; > }; > > -struct nf_hook_entries_rcu_head { > - struct rcu_head head; > - void *allocation; > -}; > - > struct nf_hook_entries { > + struct rcu_head head; Right, this works too. I wanted to keep the rcu head out of the fastpath part as we only need it during destruction. -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html