diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c index c64961632c..41dd8ee129 100644 --- a/drivers/net/hns3/hns3_ethdev_vf.c +++ b/drivers/net/hns3/hns3_ethdev_vf.c @@ -2205,16 +2205,18 @@ hns3vf_dev_link_update(struct rte_eth_dev *eth_dev, case ETH_SPEED_NUM_50G: case ETH_SPEED_NUM_100G: case ETH_SPEED_NUM_200G: - new_link.link_speed = mac->link_speed; + if (mac->link_status) + new_link.link_speed = mac->link_speed; break; default: if (mac->link_status) new_link.link_speed = ETH_SPEED_NUM_UNKNOWN; - else - new_link.link_speed = ETH_SPEED_NUM_NONE; break; } + if (!mac->link_status) + new_link.link_speed = ETH_SPEED_NUM_NONE; + new_link.link_duplex = mac->link_duplex; new_link.link_status = mac->link_status ? ETH_LINK_UP : ETH_LINK_DOWN; new_link.link_autoneg =