aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYonglong Liu <liuyonglong@huawei.com>2020-07-28 10:16:49 +0800
committerDavid S. Miller <davem@davemloft.net>2020-07-28 12:54:48 -0700
commita7e90ee5965fafc53d36e8b3205f08c88d7bc11f (patch)
treef8b4dba11930b805e8c1dddbf5a2beec15c39e93
parentcfdaeba5ddc98b303639a3265c2031ac5db249d6 (diff)
downloadide-a7e90ee5965fafc53d36e8b3205f08c88d7bc11f.tar.gz
net: hns3: fix a TX timeout issue
When the queue depth and queue parameters are modified, there is a low probability that TX timeout occurs. The two operations cause the link to be down or up when the watchdog is still working. All queues are stopped when the link is down. After the carrier is on, all queues are woken up. If the watchdog detects the link between the carrier on and wakeup queues, a false TX timeout occurs. So fix this issue by modifying the sequence of carrier on and queue wakeup, which is symmetrical to the link down action. Fixes: 76ad4f0ee747 ("net: hns3: Add support of HNS3 Ethernet Driver for hip08 SoC") Signed-off-by: Yonglong Liu <liuyonglong@huawei.com> Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/hisilicon/hns3/hns3_enet.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
index 3328500c054373..71ed4c54f6d5df 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
@@ -4136,8 +4136,8 @@ static void hns3_link_status_change(struct hnae3_handle *handle, bool linkup)
return;
if (linkup) {
- netif_carrier_on(netdev);
netif_tx_wake_all_queues(netdev);
+ netif_carrier_on(netdev);
if (netif_msg_link(handle))
netdev_info(netdev, "link up\n");
} else {