From patchwork Thu Sep 28 09:47:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiawen Wu X-Patchwork-Id: 132105 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 546C14265E; Thu, 28 Sep 2023 11:38:00 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EEBE440FDE; Thu, 28 Sep 2023 11:37:33 +0200 (CEST) Received: from smtpbgbr2.qq.com (smtpbgbr2.qq.com [54.207.22.56]) by mails.dpdk.org (Postfix) with ESMTP id CD06440EE7; Thu, 28 Sep 2023 11:37:30 +0200 (CEST) X-QQ-mid: bizesmtp74t1695893840tlyggm46 Received: from wxdbg.localdomain.com ( [115.200.229.121]) by bizesmtp.qq.com (ESMTP) with id ; Thu, 28 Sep 2023 17:37:19 +0800 (CST) X-QQ-SSF: 01400000000000K0Z000000A0000000 X-QQ-FEAT: WjKIxUDuZHQgDWXvg/HlMl6rpfpL0S1TQy7i01jaQHbDtgONa0SKdrkzpaTD9 IVjX1YhxRD+Q1fE2AgHd6miNN66IV46Zduuu8zS++F6xi1sa4KM/csrCH3eMRb6ZVpTO9Q6 RN8JPZOyStdo3wO/Allbn3XkNZXrLJc3Q5kRC8vfyZYFZdYRgOKaaHD+3tRgXzi6sg9qI7W ERq0luO46HsOIJ9Lheh1Cp8xjPBGT9sELx8Ou0772uTqkJzQu8eKDjybXJmK76jRClI0vrG cgSVlUTbFoxgKrVBuU2ojyhODd/5wgNPAQhT2LjgnSOyK4W5bPsHxdB01doR6JHCSxKU1Ok 4eO5Zamb8LmGia5p2zrTSvcmBLA8JSNJaYXdRmZVjKbb52HvpvPzfv9Eny9nNSu983UC1w0 1bGCM02zF+I= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 12081001662970362395 From: Jiawen Wu To: dev@dpdk.org Cc: Jiawen Wu , stable@dpdk.org Subject: [PATCH 07/11] net/txgbe: fix to keep link down after device close Date: Thu, 28 Sep 2023 17:47:54 +0800 Message-Id: <20230928094758.1076236-8-jiawenwu@trustnetic.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20230928094758.1076236-1-jiawenwu@trustnetic.com> References: <20230928094758.1076236-1-jiawenwu@trustnetic.com> MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:trustnetic.com:qybglogicsvrgz:qybglogicsvrgz5a-1 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org When the port is closed, hardware is reset to power on. And txgbe_dev_stop() is just returned 0 to avoid secondary calls, so that the link led remains on. Fix this bug by adding to turn off the copper/laser. Fixes: e0d876ef6bbc ("net/txgbe: support device stop and close") Cc: stable@dpdk.org Signed-off-by: Jiawen Wu --- drivers/net/txgbe/txgbe_ethdev.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c index e789e34c01..2dad820cb5 100644 --- a/drivers/net/txgbe/txgbe_ethdev.c +++ b/drivers/net/txgbe/txgbe_ethdev.c @@ -1929,7 +1929,7 @@ txgbe_dev_stop(struct rte_eth_dev *dev) struct txgbe_tm_conf *tm_conf = TXGBE_DEV_TM_CONF(dev); if (hw->adapter_stopped) - return 0; + goto out; PMD_INIT_FUNC_TRACE(); @@ -1953,14 +1953,6 @@ txgbe_dev_stop(struct rte_eth_dev *dev) for (vf = 0; vfinfo != NULL && vf < pci_dev->max_vfs; vf++) vfinfo[vf].clear_to_send = false; - if (hw->phy.media_type == txgbe_media_type_copper) { - /* Turn off the copper */ - hw->phy.set_phy_power(hw, false); - } else { - /* Turn off the laser */ - hw->mac.disable_tx_laser(hw); - } - txgbe_dev_clear_queues(dev); /* Clear stored conf */ @@ -1991,6 +1983,16 @@ txgbe_dev_stop(struct rte_eth_dev *dev) dev->data->dev_started = 0; hw->dev_start = false; +out: + /* close phy to prevent reset in dev_close from restarting physical link */ + if (hw->phy.media_type == txgbe_media_type_copper) { + /* Turn off the copper */ + hw->phy.set_phy_power(hw, false); + } else { + /* Turn off the laser */ + hw->mac.disable_tx_laser(hw); + } + return 0; }