From c1b22c18decc0f90d80d8d6736cd48468c99fe46 Mon Sep 17 00:00:00 2001 From: Yahui Cao Date: Wed, 20 Nov 2019 00:01:00 +0800 Subject: [PATCH] net/ice: fix flow director rule duplication check When FDIR filter detects duplicated rule and then returns EEXIST, ice flow will capture this error and return immediately. Fixes: 4e27d3ed02bd ("net/ice: fix flow API framework") Signed-off-by: Yahui Cao Acked-by: Qi Zhang --- drivers/net/ice/ice_generic_flow.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/net/ice/ice_generic_flow.c b/drivers/net/ice/ice_generic_flow.c index 5594f8555b..1d8c834180 100644 --- a/drivers/net/ice/ice_generic_flow.c +++ b/drivers/net/ice/ice_generic_flow.c @@ -1698,6 +1698,8 @@ ice_parse_engine_create(struct ice_adapter *ad, void *temp; TAILQ_FOREACH_SAFE(parser_node, parser_list, node, temp) { + int ret; + if (parser_node->parser->parse_pattern_action(ad, parser_node->parser->array, parser_node->parser->array_len, @@ -1712,8 +1714,11 @@ ice_parse_engine_create(struct ice_adapter *ad, continue; } - if (!(engine->create(ad, flow, *meta, error))) + ret = engine->create(ad, flow, *meta, error); + if (ret == 0) return engine; + else if (ret == -EEXIST) + return NULL; } return NULL; } -- 2.20.1