[dpdk-stable] patch 'net/bnx2x: fix invalid free on unplug' has been queued to LTS release 18.11.3

Kevin Traynor ktraynor at redhat.com
Fri Aug 23 11:43:07 CEST 2019


Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 08/28/19. 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.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/d38d3ff61172c75bd10e248d84ea6a2481e3dcf1

Thanks.

Kevin Traynor

---
>From d38d3ff61172c75bd10e248d84ea6a2481e3dcf1 Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand at redhat.com>
Date: Mon, 17 Jun 2019 17:05:23 +0200
Subject: [PATCH] net/bnx2x: fix invalid free on unplug

[ upstream commit eaa45270aa6646aefc223d0734e14ccb8838c2ef ]

mac_addrs points to a field in dev_private.
We can't let ethdev free it.

Fixes: e16adf08e54d ("ethdev: free all common data when releasing port")

Signed-off-by: David Marchand <david.marchand at redhat.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit at intel.com>
---
 drivers/net/bnx2x/bnx2x_ethdev.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/net/bnx2x/bnx2x_ethdev.c b/drivers/net/bnx2x/bnx2x_ethdev.c
index cd0a6304c..d2ef8c953 100644
--- a/drivers/net/bnx2x/bnx2x_ethdev.c
+++ b/drivers/net/bnx2x/bnx2x_ethdev.c
@@ -700,4 +700,11 @@ eth_bnx2xvf_dev_init(struct rte_eth_dev *eth_dev)
 }
 
+static int eth_bnx2x_dev_uninit(struct rte_eth_dev *eth_dev)
+{
+	/* mac_addrs must not be freed alone because part of dev_private */
+	eth_dev->data->mac_addrs = NULL;
+	return 0;
+}
+
 static struct rte_pci_driver rte_bnx2x_pmd;
 static struct rte_pci_driver rte_bnx2xvf_pmd;
@@ -718,5 +725,5 @@ static int eth_bnx2x_pci_probe(struct rte_pci_driver *pci_drv,
 static int eth_bnx2x_pci_remove(struct rte_pci_device *pci_dev)
 {
-	return rte_eth_dev_pci_generic_remove(pci_dev, NULL);
+	return rte_eth_dev_pci_generic_remove(pci_dev, eth_bnx2x_dev_uninit);
 }
 
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-08-22 19:38:21.570146756 +0100
+++ 0017-net-bnx2x-fix-invalid-free-on-unplug.patch	2019-08-22 19:38:20.418027332 +0100
@@ -1 +1 @@
-From eaa45270aa6646aefc223d0734e14ccb8838c2ef Mon Sep 17 00:00:00 2001
+From d38d3ff61172c75bd10e248d84ea6a2481e3dcf1 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit eaa45270aa6646aefc223d0734e14ccb8838c2ef ]
+
@@ -10 +11,0 @@
-Cc: stable at dpdk.org
@@ -19 +20 @@
-index 0ee35e4e4..10b4fdb8e 100644
+index cd0a6304c..d2ef8c953 100644
@@ -22 +23 @@
-@@ -701,4 +701,11 @@ eth_bnx2xvf_dev_init(struct rte_eth_dev *eth_dev)
+@@ -700,4 +700,11 @@ eth_bnx2xvf_dev_init(struct rte_eth_dev *eth_dev)
@@ -34 +35 @@
-@@ -719,5 +726,5 @@ static int eth_bnx2x_pci_probe(struct rte_pci_driver *pci_drv,
+@@ -718,5 +725,5 @@ static int eth_bnx2x_pci_probe(struct rte_pci_driver *pci_drv,


More information about the stable mailing list