net: sched: notify classifier on successful offload add/delete
To remove dependency on rtnl lock, extend classifier ops with new ops->hw_add() and ops->hw_del() callbacks. Call them from cls API while holding cb_lock every time filter if successfully added to or deleted from hardware. Implement the new API in flower classifier. Use it to manage hw_filters list under cb_lock protection, instead of relying on rtnl lock to synchronize with concurrent fl_reoffload() call. Signed-off-by: Vlad Buslov <vladbu@mellanox.com> Acked-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
4011921137
commit
a449a3e77a
@@ -312,6 +312,10 @@ struct tcf_proto_ops {
|
||||
int (*reoffload)(struct tcf_proto *tp, bool add,
|
||||
flow_setup_cb_t *cb, void *cb_priv,
|
||||
struct netlink_ext_ack *extack);
|
||||
void (*hw_add)(struct tcf_proto *tp,
|
||||
void *type_data);
|
||||
void (*hw_del)(struct tcf_proto *tp,
|
||||
void *type_data);
|
||||
void (*bind_class)(void *, u32, unsigned long);
|
||||
void * (*tmplt_create)(struct net *net,
|
||||
struct tcf_chain *chain,
|
||||
|
||||
Reference in New Issue
Block a user