net: hns3: refine tx timeout count handle
authorJian Shen <shenjian15@huawei.com>
Fri, 19 Apr 2019 03:05:40 +0000 (11:05 +0800)
committerDavid S. Miller <davem@davemloft.net>
Sat, 20 Apr 2019 01:43:15 +0000 (18:43 -0700)
In current codes, tx_timeout_cnt is used before increased,
then we can see the tx_timeout_count is still 0 from the
print when tx timeout happens, e.g.
"hns3 0000:7d:00.3 eth3: tx_timeout count: 0, queue id: 0, SW_NTU:
 0xa6, SW_NTC: 0xa4, HW_HEAD: 0xa4, HW_TAIL: 0xa6, INT: 0x1"

The tx_timeout_cnt should be updated before used.

Signed-off-by: Jian Shen <shenjian15@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c

index 923343858f514e6b84c9e9288ccfd617e7b88600..193994cf7899307cf71dc0a84ae7efbe9129ab54 100644 (file)
@@ -1655,6 +1655,8 @@ static bool hns3_get_tx_timeo_queue_info(struct net_device *ndev)
                return false;
        }
 
+       priv->tx_timeout_count++;
+
        tx_ring = priv->ring_data[timeout_queue].ring;
 
        hw_head = readl_relaxed(tx_ring->tqp->io_base +
@@ -1682,8 +1684,6 @@ static void hns3_nic_net_timeout(struct net_device *ndev)
        if (!hns3_get_tx_timeo_queue_info(ndev))
                return;
 
-       priv->tx_timeout_count++;
-
        /* request the reset, and let the hclge to determine
         * which reset level should be done
         */