net/hns3: fix reporting undefined speed

There may be a case in future that the speed obtained from firmware
is undefined (such as, 400G or other rate), and link status of device is
up. At this case, PMD driver will reports 100Mbps to the user in the
"hns3_dev_link_update" API, which is unreasonable. Besides, if the
speed from firmware is zero, driver should report zero instead of
100Mbps.

Fixes: 59fad0f32135 ("net/hns3: support link update operation")
Cc: stable@dpdk.org

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
This commit is contained in:
Huisong Li 2021-03-23 21:45:51 +08:00 committed by Ferruh Yigit
parent 9997a0cb64
commit b6579e3db7
2 changed files with 8 additions and 2 deletions

View File

@ -2725,7 +2725,10 @@ hns3_dev_link_update(struct rte_eth_dev *eth_dev,
new_link.link_speed = mac->link_speed;
break;
default:
new_link.link_speed = ETH_SPEED_NUM_100M;
if (mac->link_status)
new_link.link_speed = ETH_SPEED_NUM_UNKNOWN;
else
new_link.link_speed = ETH_SPEED_NUM_NONE;
break;
}

View File

@ -2123,7 +2123,10 @@ hns3vf_dev_link_update(struct rte_eth_dev *eth_dev,
new_link.link_speed = mac->link_speed;
break;
default:
new_link.link_speed = ETH_SPEED_NUM_100M;
if (mac->link_status)
new_link.link_speed = ETH_SPEED_NUM_UNKNOWN;
else
new_link.link_speed = ETH_SPEED_NUM_NONE;
break;
}