On Wed, Feb 13, 2019 at 11:47 PM Vlad Buslov <vla...@mellanox.com> wrote: > > Flower classifier only changes root pointer during init and destroy. Cls > API implements reference counting for tcf_proto, so there is no danger of > concurrent access to tp when it is being destroyed, even without protection > provided by rtnl lock.
How about atomicity? Refcnt doesn't guarantee atomicity, how do you make sure two concurrent modifications are atomic? > > Implement new function fl_head_dereference() to dereference tp->root > without checking for rtnl lock. Use it in all flower function that obtain > head pointer instead of rtnl_dereference(). > So what lock protects RCU writers after this patch?