net: hns3: add a resetting check in hclgevf_init_nic_client_instance()
To prevent from initializing VF NIC client in reset handling state, this patch adds resetting check in hclgevf_init_nic_client_instance(). Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com> Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
4a11c551a6
commit
4cd5beaa89
@ -2713,6 +2713,7 @@ static int hclgevf_init_nic_client_instance(struct hnae3_ae_dev *ae_dev,
|
||||
struct hnae3_client *client)
|
||||
{
|
||||
struct hclgevf_dev *hdev = ae_dev->priv;
|
||||
int rst_cnt = hdev->rst_stats.rst_cnt;
|
||||
int ret;
|
||||
|
||||
ret = client->ops->init_instance(&hdev->nic);
|
||||
@ -2720,6 +2721,14 @@ static int hclgevf_init_nic_client_instance(struct hnae3_ae_dev *ae_dev,
|
||||
return ret;
|
||||
|
||||
set_bit(HCLGEVF_STATE_NIC_REGISTERED, &hdev->state);
|
||||
if (test_bit(HCLGEVF_STATE_RST_HANDLING, &hdev->state) ||
|
||||
rst_cnt != hdev->rst_stats.rst_cnt) {
|
||||
clear_bit(HCLGEVF_STATE_NIC_REGISTERED, &hdev->state);
|
||||
|
||||
client->ops->uninit_instance(&hdev->nic, 0);
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
hnae3_set_client_init_flag(client, ae_dev, 1);
|
||||
|
||||
if (netif_msg_drv(&hdev->nic))
|
||||
|
Loading…
Reference in New Issue
Block a user