Move link state enable/disable to dev_start() and dev_stop() respectively. This will ensure when devices are stopped, link status will be appropriately shown as down.
Fixes: dd28bc8c6ef4 ("net/qede: fix VF port creation sequence") Cc: sta...@dpdk.org Signed-off-by: Shahed Shaikh <shsha...@marvell.com> Signed-off-by: Rasesh Mody <rm...@marvell.com> Signed-off-by: Igor Russkikh <irussk...@marvell.com> --- drivers/net/qede/qede_ethdev.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c index bcd8252d9..9a5847076 100644 --- a/drivers/net/qede/qede_ethdev.c +++ b/drivers/net/qede/qede_ethdev.c @@ -1150,6 +1150,9 @@ static int qede_dev_start(struct rte_eth_dev *eth_dev) if (qede_activate_vport(eth_dev, true)) goto err; + /* Bring-up the link */ + qede_dev_set_link_state(eth_dev, true); + /* Update link status */ qede_link_update(eth_dev, 0); @@ -1179,6 +1182,12 @@ static void qede_dev_stop(struct rte_eth_dev *eth_dev) */ qede_assign_rxtx_handlers(eth_dev, true); + /* Bring the link down */ + qede_dev_set_link_state(eth_dev, false); + + /* Update link status */ + qede_link_update(eth_dev, 0); + /* Disable vport */ if (qede_activate_vport(eth_dev, false)) return; @@ -1563,8 +1572,6 @@ static void qede_dev_close(struct rte_eth_dev *eth_dev) eth_dev->data->nb_rx_queues = 0; eth_dev->data->nb_tx_queues = 0; - /* Bring the link down */ - qede_dev_set_link_state(eth_dev, false); qdev->ops->common->slowpath_stop(edev); qdev->ops->common->remove(edev); rte_intr_disable(&pci_dev->intr_handle); @@ -2671,9 +2678,6 @@ static int qede_common_dev_init(struct rte_eth_dev *eth_dev, bool is_vf) eth_dev->dev_ops = (is_vf) ? &qede_eth_vf_dev_ops : &qede_eth_dev_ops; - /* Bring-up the link */ - qede_dev_set_link_state(eth_dev, true); - adapter->num_tx_queues = 0; adapter->num_rx_queues = 0; SLIST_INIT(&adapter->arfs_info.arfs_list_head); -- 2.18.0