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") Cc: ying.a.w...@intel.com Signed-off-by: Yahui Cao <yahui....@intel.com> --- 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 5594f8555..1d8c83418 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.17.1