net/ice: fix FDIR rule duplication check failure

Message ID 20191119160101.32465-1-yahui.cao@intel.com (mailing list archive)
State Accepted, archived
Delegated to: xiaolong ye
Headers
Series net/ice: fix FDIR rule duplication check failure |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-compilation success Compile Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/travis-robot success Travis build: passed
ci/Intel-compilation fail apply issues

Commit Message

Cao, Yahui Nov. 19, 2019, 4:01 p.m. UTC
  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.wang@intel.com

Signed-off-by: Yahui Cao <yahui.cao@intel.com>
---
 drivers/net/ice/ice_generic_flow.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
  

Comments

Qi Zhang Nov. 19, 2019, 9:26 a.m. UTC | #1
> -----Original Message-----
> From: Cao, Yahui <yahui.cao@intel.com>
> Sent: Wednesday, November 20, 2019 12:01 AM
> To: Yang, Qiming <qiming.yang@intel.com>; Lu, Wenzhuo
> <wenzhuo.lu@intel.com>
> Cc: dev@dpdk.org; Zhang, Qi Z <qi.z.zhang@intel.com>; Cao, Yahui
> <yahui.cao@intel.com>; Ye, Xiaolong <xiaolong.ye@intel.com>; Wang, Ying A
> <ying.a.wang@intel.com>
> Subject: [PATCH] net/ice: fix FDIR rule duplication check failure
> 
> 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.wang@intel.com
> 
> Signed-off-by: Yahui Cao <yahui.cao@intel.com>

Acked-by: Qi Zhang <qi.z.zhang@intel.com>
  
Xiaolong Ye Nov. 20, 2019, 8:56 a.m. UTC | #2
On 11/20, Yahui Cao wrote:
>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.wang@intel.com
>
>Signed-off-by: Yahui Cao <yahui.cao@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
>

Applied to dpdk-next-net-intel, Thanks.
  

Patch

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;
 }