net: hns3: modify HNS3_NIC_STATE_INITED flag in hns3_reset_notify_uninit_enet
authorHuazhong Tan <tanhuazhong@huawei.com>
Thu, 4 Apr 2019 08:17:58 +0000 (16:17 +0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 4 Apr 2019 17:20:39 +0000 (10:20 -0700)
In the hns3_reset_notify_uninit_enet() HNS3_NIC_STATE_INITED flag
should be checked and cleared firstly.

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

index 0e31f740f1db7713ca1d789c985f3b3769b08e7d..0f389a43ff8de03d0a11fd08a6dbbfef1fc1ab0c 100644 (file)
@@ -4128,7 +4128,7 @@ static int hns3_reset_notify_uninit_enet(struct hnae3_handle *handle)
        struct hns3_nic_priv *priv = netdev_priv(netdev);
        int ret;
 
-       if (!test_bit(HNS3_NIC_STATE_INITED, &priv->state)) {
+       if (!test_and_clear_bit(HNS3_NIC_STATE_INITED, &priv->state)) {
                netdev_warn(netdev, "already uninitialized\n");
                return 0;
        }
@@ -4150,8 +4150,6 @@ static int hns3_reset_notify_uninit_enet(struct hnae3_handle *handle)
        hns3_put_ring_config(priv);
        priv->ring_data = NULL;
 
-       clear_bit(HNS3_NIC_STATE_INITED, &priv->state);
-
        return ret;
 }