[dpdk-stable] patch 'net/octeontx: fix memory leak of MAC address table' has been queued to stable release 19.11.1
luca.boccassi at gmail.com
luca.boccassi at gmail.com
Tue Feb 11 12:21:56 CET 2020
Hi,
FYI, your patch has been queued to stable release 19.11.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 02/13/20. 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. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.
Thanks.
Luca Boccassi
---
>From 67b605bdbf61cfccdd4710b5ca2f34100af59e0e Mon Sep 17 00:00:00 2001
From: Sunil Kumar Kori <skori at marvell.com>
Date: Wed, 29 Jan 2020 14:47:04 +0530
Subject: [PATCH] net/octeontx: fix memory leak of MAC address table
[ upstream commit 9e399b88ce2f103165512d4005611a1f709deb1d ]
MAC address table is allocated during octeontx device create and
same is used to maintain list of MAC address associated to port.
This table is not getting freed niether in case of error nor during
graceful shutdown of port.
Patch fixes memory required memory for both the cases as mentioned.
Fixes: f18b146c498d ("net/octeontx: create ethdev ports")
Signed-off-by: Sunil Kumar Kori <skori at marvell.com>
Acked-by: Harman Kalra <hkalra at marvell.com>
---
drivers/net/octeontx/octeontx_ethdev.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/net/octeontx/octeontx_ethdev.c b/drivers/net/octeontx/octeontx_ethdev.c
index 679803dd4c..1d022e79a0 100644
--- a/drivers/net/octeontx/octeontx_ethdev.c
+++ b/drivers/net/octeontx/octeontx_ethdev.c
@@ -351,6 +351,10 @@ octeontx_dev_close(struct rte_eth_dev *dev)
rte_free(txq);
}
+ /* Free MAC address table */
+ rte_free(dev->data->mac_addrs);
+ dev->data->mac_addrs = NULL;
+
dev->tx_pkt_burst = NULL;
dev->rx_pkt_burst = NULL;
}
@@ -1099,7 +1103,7 @@ octeontx_create(struct rte_vdev_device *dev, int port, uint8_t evdev,
octeontx_log_err("eth_dev->port_id (%d) is diff to orig (%d)",
data->port_id, nic->port_id);
res = -EINVAL;
- goto err;
+ goto free_mac_addrs;
}
/* Update port_id mac to eth_dev */
@@ -1118,6 +1122,8 @@ octeontx_create(struct rte_vdev_device *dev, int port, uint8_t evdev,
rte_eth_dev_probing_finish(eth_dev);
return data->port_id;
+free_mac_addrs:
+ rte_free(data->mac_addrs);
err:
if (nic)
octeontx_port_close(nic);
--
2.20.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2020-02-11 11:17:44.500458007 +0000
+++ 0170-net-octeontx-fix-memory-leak-of-MAC-address-table.patch 2020-02-11 11:17:38.804008901 +0000
@@ -1,8 +1,10 @@
-From 9e399b88ce2f103165512d4005611a1f709deb1d Mon Sep 17 00:00:00 2001
+From 67b605bdbf61cfccdd4710b5ca2f34100af59e0e Mon Sep 17 00:00:00 2001
From: Sunil Kumar Kori <skori at marvell.com>
Date: Wed, 29 Jan 2020 14:47:04 +0530
Subject: [PATCH] net/octeontx: fix memory leak of MAC address table
+[ upstream commit 9e399b88ce2f103165512d4005611a1f709deb1d ]
+
MAC address table is allocated during octeontx device create and
same is used to maintain list of MAC address associated to port.
This table is not getting freed niether in case of error nor during
@@ -11,7 +13,6 @@
Patch fixes memory required memory for both the cases as mentioned.
Fixes: f18b146c498d ("net/octeontx: create ethdev ports")
-Cc: stable at dpdk.org
Signed-off-by: Sunil Kumar Kori <skori at marvell.com>
Acked-by: Harman Kalra <hkalra at marvell.com>
@@ -20,7 +21,7 @@
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/net/octeontx/octeontx_ethdev.c b/drivers/net/octeontx/octeontx_ethdev.c
-index e23162d8a6..40d9d67dab 100644
+index 679803dd4c..1d022e79a0 100644
--- a/drivers/net/octeontx/octeontx_ethdev.c
+++ b/drivers/net/octeontx/octeontx_ethdev.c
@@ -351,6 +351,10 @@ octeontx_dev_close(struct rte_eth_dev *dev)
@@ -34,7 +35,7 @@
dev->tx_pkt_burst = NULL;
dev->rx_pkt_burst = NULL;
}
-@@ -1143,7 +1147,7 @@ octeontx_create(struct rte_vdev_device *dev, int port, uint8_t evdev,
+@@ -1099,7 +1103,7 @@ octeontx_create(struct rte_vdev_device *dev, int port, uint8_t evdev,
octeontx_log_err("eth_dev->port_id (%d) is diff to orig (%d)",
data->port_id, nic->port_id);
res = -EINVAL;
@@ -43,7 +44,7 @@
}
/* Update port_id mac to eth_dev */
-@@ -1162,6 +1166,8 @@ octeontx_create(struct rte_vdev_device *dev, int port, uint8_t evdev,
+@@ -1118,6 +1122,8 @@ octeontx_create(struct rte_vdev_device *dev, int port, uint8_t evdev,
rte_eth_dev_probing_finish(eth_dev);
return data->port_id;
More information about the stable
mailing list