]> git.droids-corp.org - dpdk.git/commitdiff
net/hns3: fix reporting undefined speed
authorHuisong Li <lihuisong@huawei.com>
Tue, 23 Mar 2021 13:45:51 +0000 (21:45 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 30 Mar 2021 10:30:46 +0000 (12:30 +0200)
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>
drivers/net/hns3/hns3_ethdev.c
drivers/net/hns3/hns3_ethdev_vf.c

index d392f6d109bfcde6d56296a79dfa2f316cb3153a..73b96c18d1b8b916366e1c8cdced6968402d46dc 100644 (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;
        }
 
index 30788f5c32f8d359c91d72b2ccfe95d3678e1714..6c3ddcc50e806017ab02df7a483f8cdb3948f1c1 100644 (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;
        }