From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 225CE1B8B8 for ; Fri, 14 Dec 2018 19:25:33 +0100 (CET) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 83E41169733; Fri, 14 Dec 2018 18:25:32 +0000 (UTC) Received: from ktraynor.remote.csb (ovpn-116-106.ams2.redhat.com [10.36.116.106]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4E2E5600C0; Fri, 14 Dec 2018 18:25:31 +0000 (UTC) From: Kevin Traynor To: Zhirun Yan Cc: Haiyue Wang , Qi Zhang , dpdk stable Date: Fri, 14 Dec 2018 18:24:17 +0000 Message-Id: <20181214182430.11593-15-ktraynor@redhat.com> In-Reply-To: <20181214182430.11593-1-ktraynor@redhat.com> References: <20181214182430.11593-1-ktraynor@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Fri, 14 Dec 2018 18:25:32 +0000 (UTC) Subject: [dpdk-stable] patch 'net/i40e: fix port close' has been queued to stable release 18.11.1 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Dec 2018 18:25:33 -0000 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 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 Signed-off-by: Haiyue Wang Acked-by: Qi Zhang --- 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 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@dpdk.org Signed-off-by: Zhirun Yan Signed-off-by: Haiyue Wang