The link status for ixgbevf is not correct when PF link up.
IXGBE_ESDP register is only used when media type is fiber.

Fixes: 1ca05831b9be ("net/ixgbe: fix link status")
Cc: sta...@dpdk.org

Signed-off-by: Lunyuan Cui <lunyuanx....@intel.com>
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 2c6fd0f13..a3f550c53 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -4155,9 +4155,11 @@ ixgbe_dev_link_update_share(struct rte_eth_dev *dev,
                return rte_eth_linkstatus_set(dev, &link);
        }
 
-       esdp_reg = IXGBE_READ_REG(hw, IXGBE_ESDP);
-       if ((esdp_reg & IXGBE_ESDP_SDP3))
-               link_up = 0;
+       if (ixgbe_get_media_type(hw) == ixgbe_media_type_fiber) {
+               esdp_reg = IXGBE_READ_REG(hw, IXGBE_ESDP);
+               if ((esdp_reg & IXGBE_ESDP_SDP3))
+                       link_up = 0;
+       }
 
        if (link_up == 0) {
                if (ixgbe_get_media_type(hw) == ixgbe_media_type_fiber) {
-- 
2.17.1

Reply via email to