[dpdk-stable] patch 'net/i40e: fix port close' has been queued to stable release 18.11.1

Kevin Traynor ktraynor at redhat.com
Fri Dec 14 19:24:17 CET 2018


Hi,

FYI, your patch has been queued to stable release 18.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 12/18/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. 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.

Kevin Traynor

---
>From 9cb92a47de86ef5b946340d4e01ef34baa3b283d Mon Sep 17 00:00:00 2001
From: Zhirun Yan <zhirun.yan at intel.com>
Date: Mon, 10 Dec 2018 14:08:58 +0000
Subject: [PATCH] net/i40e: fix port close

[ upstream commit 38827a04812c232ef10ec2d7cde1ca133923c225 ]

Port reset will call i40evf_uninit_vf() to release resource. It wants
to call i40evf_dev_close() to release resources. Before this patch,
hw->adapter_stopped was used to mark the status about start/stop and
close. So it will never call i40evf_dev_close() after stopping the port.

This patch added hw->adapter_closed flag in i40evf_dev_close() and
i40e_dev_close() to control the status of close.

Fixes: 4861cde46116 ("i40e: new poll mode driver")

Signed-off-by: Zhirun Yan <zhirun.yan at intel.com>
Signed-off-by: Haiyue Wang <haiyue.wang at intel.com>
Acked-by: Qi Zhang <qi.z.zhang at intel.com>
---
 drivers/net/i40e/base/i40e_type.h | 1 +
 drivers/net/i40e/i40e_ethdev.c    | 5 ++++-
 drivers/net/i40e/i40e_ethdev_vf.c | 4 +++-
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/net/i40e/base/i40e_type.h b/drivers/net/i40e/base/i40e_type.h
index 77562f24e..7ba62cc12 100644
--- a/drivers/net/i40e/base/i40e_type.h
+++ b/drivers/net/i40e/base/i40e_type.h
@@ -671,4 +671,5 @@ struct i40e_hw {
 	u8 port;
 	bool adapter_stopped;
+	bool adapter_closed;
 
 	/* capabilities for entire device and PCI func */
diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index c1934d9c1..501c30cc3 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -1317,4 +1317,5 @@ eth_i40e_dev_init(struct rte_eth_dev *dev, void *init_params __rte_unused)
 	hw->bus.func = pci_dev->addr.function;
 	hw->adapter_stopped = 0;
+	hw->adapter_closed = 0;
 
 	/*
@@ -1714,5 +1715,5 @@ eth_i40e_dev_uninit(struct rte_eth_dev *dev)
 		PMD_INIT_LOG(WARNING, "failed to free switch domain: %d", ret);
 
-	if (hw->adapter_stopped == 0)
+	if (hw->adapter_closed == 0)
 		i40e_dev_close(dev);
 
@@ -2535,4 +2536,6 @@ i40e_dev_close(struct rte_eth_dev *dev)
 			(reg | I40E_PFGEN_CTRL_PFSWR_MASK));
 	I40E_WRITE_FLUSH(hw);
+
+	hw->adapter_closed = 1;
 }
 
diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c
index ae55b9b18..05dc6596b 100644
--- a/drivers/net/i40e/i40e_ethdev_vf.c
+++ b/drivers/net/i40e/i40e_ethdev_vf.c
@@ -1257,5 +1257,5 @@ i40evf_uninit_vf(struct rte_eth_dev *dev)
 	PMD_INIT_FUNC_TRACE();
 
-	if (hw->adapter_stopped == 0)
+	if (hw->adapter_closed == 0)
 		i40evf_dev_close(dev);
 	rte_free(vf->vf_res);
@@ -1439,4 +1439,5 @@ i40evf_dev_init(struct rte_eth_dev *eth_dev)
 	hw->hw_addr = (void *)pci_dev->mem_resource[0].addr;
 	hw->adapter_stopped = 0;
+	hw->adapter_closed = 0;
 
 	if(i40evf_init_vf(eth_dev) != 0) {
@@ -2261,4 +2262,5 @@ i40evf_dev_close(struct rte_eth_dev *dev)
 	i40evf_disable_irq0(hw);
 	rte_eal_alarm_cancel(i40evf_dev_alarm_handler, dev);
+	hw->adapter_closed = 1;
 }
 
-- 
2.19.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-12-14 18:23:18.658952497 +0000
+++ 0015-net-i40e-fix-port-close.patch	2018-12-14 18:23:18.000000000 +0000
@@ -1,8 +1,10 @@
-From 38827a04812c232ef10ec2d7cde1ca133923c225 Mon Sep 17 00:00:00 2001
+From 9cb92a47de86ef5b946340d4e01ef34baa3b283d Mon Sep 17 00:00:00 2001
 From: Zhirun Yan <zhirun.yan at intel.com>
 Date: Mon, 10 Dec 2018 14:08:58 +0000
 Subject: [PATCH] net/i40e: fix port close
 
+[ upstream commit 38827a04812c232ef10ec2d7cde1ca133923c225 ]
+
 Port reset will call i40evf_uninit_vf() to release resource. It wants
 to call i40evf_dev_close() to release resources. Before this patch,
 hw->adapter_stopped was used to mark the status about start/stop and
@@ -12,7 +14,6 @@
 i40e_dev_close() to control the status of close.
 
 Fixes: 4861cde46116 ("i40e: new poll mode driver")
-Cc: stable at dpdk.org
 
 Signed-off-by: Zhirun Yan <zhirun.yan at intel.com>
 Signed-off-by: Haiyue Wang <haiyue.wang at intel.com>


More information about the stable mailing list