net/bnxt: fix unnecessary delay in port stop
authorKalesh AP <kalesh-anakkur.purayil@broadcom.com>
Thu, 6 Feb 2020 16:33:08 +0000 (22:03 +0530)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 14 Feb 2020 11:42:12 +0000 (12:42 +0100)
VFs and multifunction PFs do not have the privilege to change
link configuration. We force the physical link down as a part
of device stop only for single physical function(SPF).

This change also helps in eliminating the logs when a VF port
is stopped:

"Port 0: link state change event"
"bnxt_print_link_info(): Port 0 Link Up - speed 25000 Mbps - full-duplex"

Fixes: 316e412299fd ("net/bnxt: fix crash when closing")
Cc: stable@dpdk.org
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
drivers/net/bnxt/bnxt_ethdev.c

index c1cb401..5378209 100644 (file)
@@ -948,9 +948,10 @@ static void bnxt_dev_stop_op(struct rte_eth_dev *eth_dev)
        bnxt_dev_set_link_down_op(eth_dev);
 
        /* Wait for link to be reset and the async notification to process.
-        * During reset recovery, there is no need to wait
+        * During reset recovery, there is no need to wait and
+        * VF/NPAR functions do not have privilege to change PHY config.
         */
-       if (!is_bnxt_in_error(bp))
+       if (!is_bnxt_in_error(bp) && BNXT_SINGLE_PF(bp))
                bnxt_link_update(eth_dev, 1, ETH_LINK_DOWN);
 
        /* Clean queue intr-vector mapping */