From: Yahui Cao Date: Tue, 19 Nov 2019 16:01:00 +0000 (+0800) Subject: net/ice: fix flow director rule duplication check X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=c1b22c18decc0f90d80d8d6736cd48468c99fe46;p=dpdk.git 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 --- 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; }