net: sched: add API for registering unlocked offload block callbacks
authorVlad Buslov <vladbu@mellanox.com>
Mon, 26 Aug 2019 13:45:01 +0000 (16:45 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 26 Aug 2019 21:17:43 +0000 (14:17 -0700)
commitc9f14470d04830de217f9d28fcd0deffd7e8c0b1
treec9872a94afc6f2b5c92c1452d8144024c25c4fec
parenta449a3e77a85fc8b31fef7238451dc87af8ff1af
net: sched: add API for registering unlocked offload block callbacks

Extend struct flow_block_offload with "unlocked_driver_cb" flag to allow
registering and unregistering block hardware offload callbacks that do not
require caller to hold rtnl lock. Extend tcf_block with additional
lockeddevcnt counter that is incremented for each non-unlocked driver
callback attached to device. This counter is necessary to conditionally
obtain rtnl lock before calling hardware callbacks in following patches.

Register mlx5 tc block offload callbacks as "unlocked".

Signed-off-by: Vlad Buslov <vladbu@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx5/core/en_main.c
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
include/net/flow_offload.h
include/net/sch_generic.h
net/sched/cls_api.c