[dpdk-stable] patch 'net/enic: fix flow API memory leak' has been queued to LTS release 17.11.5

Yongseok Koh yskoh at mellanox.com
Fri Nov 30 00:10:43 CET 2018


Hi,

FYI, your patch has been queued to LTS release 17.11.5

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the patch applied
to the branch. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Yongseok

---
>From d9188be44d286a3731ae039b210060336a9b5288 Mon Sep 17 00:00:00 2001
From: John Daley <johndale at cisco.com>
Date: Thu, 27 Sep 2018 20:08:36 -0700
Subject: [PATCH] net/enic: fix flow API memory leak

[ upstream commit 85b0ccec381d217ad6fb1698317b863a31fdd8af ]

rte_flow structures were not being freed when destroyed or flushed.

Fixes: 6ced137607d0 ("net/enic: flow API for NICs with advanced filters enabled")

Signed-off-by: Hyong Youb Kim <hyonkim at cisco.com>
Signed-off-by: John Daley <johndale at cisco.com>
---
 drivers/net/enic/enic_flow.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/enic/enic_flow.c b/drivers/net/enic/enic_flow.c
index a728d0777..407b36e22 100644
--- a/drivers/net/enic/enic_flow.c
+++ b/drivers/net/enic/enic_flow.c
@@ -1503,6 +1503,7 @@ enic_flow_destroy(struct rte_eth_dev *dev, struct rte_flow *flow,
 	enic_flow_del_filter(enic, flow->enic_filter_id, error);
 	LIST_REMOVE(flow, next);
 	rte_spinlock_unlock(&enic->flows_lock);
+	rte_free(flow);
 	return 0;
 }
 
@@ -1526,6 +1527,7 @@ enic_flow_flush(struct rte_eth_dev *dev, struct rte_flow_error *error)
 		flow = LIST_FIRST(&enic->flows);
 		enic_flow_del_filter(enic, flow->enic_filter_id, error);
 		LIST_REMOVE(flow, next);
+		rte_free(flow);
 	}
 	rte_spinlock_unlock(&enic->flows_lock);
 	return 0;
-- 
2.11.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-29 15:01:47.396620851 -0800
+++ 0049-net-enic-fix-flow-API-memory-leak.patch	2018-11-29 15:01:45.108962000 -0800
@@ -1,12 +1,13 @@
-From 85b0ccec381d217ad6fb1698317b863a31fdd8af Mon Sep 17 00:00:00 2001
+From d9188be44d286a3731ae039b210060336a9b5288 Mon Sep 17 00:00:00 2001
 From: John Daley <johndale at cisco.com>
 Date: Thu, 27 Sep 2018 20:08:36 -0700
 Subject: [PATCH] net/enic: fix flow API memory leak
 
+[ upstream commit 85b0ccec381d217ad6fb1698317b863a31fdd8af ]
+
 rte_flow structures were not being freed when destroyed or flushed.
 
 Fixes: 6ced137607d0 ("net/enic: flow API for NICs with advanced filters enabled")
-Cc: stable at dpdk.org
 
 Signed-off-by: Hyong Youb Kim <hyonkim at cisco.com>
 Signed-off-by: John Daley <johndale at cisco.com>
@@ -15,10 +16,10 @@
  1 file changed, 2 insertions(+)
 
 diff --git a/drivers/net/enic/enic_flow.c b/drivers/net/enic/enic_flow.c
-index 0cf04aefd..9b612f1d5 100644
+index a728d0777..407b36e22 100644
 --- a/drivers/net/enic/enic_flow.c
 +++ b/drivers/net/enic/enic_flow.c
-@@ -1532,6 +1532,7 @@ enic_flow_destroy(struct rte_eth_dev *dev, struct rte_flow *flow,
+@@ -1503,6 +1503,7 @@ enic_flow_destroy(struct rte_eth_dev *dev, struct rte_flow *flow,
  	enic_flow_del_filter(enic, flow->enic_filter_id, error);
  	LIST_REMOVE(flow, next);
  	rte_spinlock_unlock(&enic->flows_lock);
@@ -26,7 +27,7 @@
  	return 0;
  }
  
-@@ -1555,6 +1556,7 @@ enic_flow_flush(struct rte_eth_dev *dev, struct rte_flow_error *error)
+@@ -1526,6 +1527,7 @@ enic_flow_flush(struct rte_eth_dev *dev, struct rte_flow_error *error)
  		flow = LIST_FIRST(&enic->flows);
  		enic_flow_del_filter(enic, flow->enic_filter_id, error);
  		LIST_REMOVE(flow, next);


More information about the stable mailing list