[ovs-dev] [PATCH v1] netdev-offload-tc: Use single 'once' variable for probing tc features
Roi Dayan
roid at nvidia.com
Wed Nov 11 10:07:55 UTC 2020
There is no need for a 'once' variable per probe.
Signed-off-by: Roi Dayan <roid at nvidia.com>
Reviewed-by: Paul Blakey <paulb at mellanox.com>
---
Notes:
v1
- add blank space for logic separation
- update commit msg
lib/netdev-offload-tc.c | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/lib/netdev-offload-tc.c b/lib/netdev-offload-tc.c
index e828a8683910..2a772a971ffe 100644
--- a/lib/netdev-offload-tc.c
+++ b/lib/netdev-offload-tc.c
@@ -1988,8 +1988,7 @@ probe_tc_block_support(int ifindex)
static int
netdev_tc_init_flow_api(struct netdev *netdev)
{
- static struct ovsthread_once multi_mask_once = OVSTHREAD_ONCE_INITIALIZER;
- static struct ovsthread_once block_once = OVSTHREAD_ONCE_INITIALIZER;
+ static struct ovsthread_once once = OVSTHREAD_ONCE_INITIALIZER;
enum tc_qdisc_hook hook = get_tc_qdisc_hook(netdev);
uint32_t block_id = 0;
struct tcf_id id;
@@ -2014,16 +2013,13 @@ netdev_tc_init_flow_api(struct netdev *netdev)
/* make sure there is no ingress/egress qdisc */
tc_add_del_qdisc(ifindex, false, 0, hook);
- if (ovsthread_once_start(&block_once)) {
+ if (ovsthread_once_start(&once)) {
probe_tc_block_support(ifindex);
/* Need to re-fetch block id as it depends on feature availability. */
block_id = get_block_id_from_netdev(netdev);
- ovsthread_once_done(&block_once);
- }
- if (ovsthread_once_start(&multi_mask_once)) {
probe_multi_mask_per_prio(ifindex);
- ovsthread_once_done(&multi_mask_once);
+ ovsthread_once_done(&once);
}
error = tc_add_del_qdisc(ifindex, true, block_id, hook);
--
2.8.4
More information about the dev
mailing list