From 12e491a6b615d70fd057d54aab5cf17c11e846be Mon Sep 17 00:00:00 2001 From: Satha Rao Date: Wed, 7 Jul 2021 12:49:15 -0400 Subject: [PATCH] net/octeontx2: handle link status when device stopped Set link status to down and don't fetch link status from kernel when device in stopped state. Signed-off-by: Satha Rao Acked-by: Jerin Jacob --- drivers/net/octeontx2/otx2_ethdev.c | 5 +++++ drivers/net/octeontx2/otx2_link.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/net/octeontx2/otx2_ethdev.c b/drivers/net/octeontx2/otx2_ethdev.c index 40af99a26a..75d4cabf2e 100644 --- a/drivers/net/octeontx2/otx2_ethdev.c +++ b/drivers/net/octeontx2/otx2_ethdev.c @@ -2171,6 +2171,7 @@ otx2_nix_dev_stop(struct rte_eth_dev *eth_dev) struct otx2_eth_dev *dev = otx2_eth_pmd_priv(eth_dev); struct rte_mbuf *rx_pkts[32]; struct otx2_eth_rxq *rxq; + struct rte_eth_link link; int count, i, j, rc; nix_lf_switch_header_type_enable(dev, false); @@ -2196,6 +2197,10 @@ otx2_nix_dev_stop(struct rte_eth_dev *eth_dev) for (i = 0; i < eth_dev->data->nb_tx_queues; i++) otx2_nix_tx_queue_stop(eth_dev, i); + /* Bring down link status internally */ + memset(&link, 0, sizeof(link)); + rte_eth_linkstatus_set(eth_dev, &link); + return 0; } diff --git a/drivers/net/octeontx2/otx2_link.c b/drivers/net/octeontx2/otx2_link.c index 5378e5c3b9..81dd6243b9 100644 --- a/drivers/net/octeontx2/otx2_link.c +++ b/drivers/net/octeontx2/otx2_link.c @@ -148,7 +148,7 @@ otx2_nix_link_update(struct rte_eth_dev *eth_dev, int wait_to_complete) RTE_SET_USED(wait_to_complete); memset(&link, 0, sizeof(struct rte_eth_link)); - if (otx2_dev_is_sdp(dev)) + if (!eth_dev->data->dev_started || otx2_dev_is_sdp(dev)) return 0; if (otx2_dev_is_lbk(dev)) -- 2.20.1