net: hns3: clear inited state and stop client after failed to register netdev
If failed to register netdev, it needs to clear INITED state and stop client in case of cause problem when concurrency with uninitialized process of driver. Fixes: a289a7e5c1d4 ("net: hns3: put off calling register_netdev() until client initialize complete") Signed-off-by: Jian Shen <shenjian15@huawei.com> Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
5220a52511
commit
e98365afc1
@ -5203,6 +5203,13 @@ static void hns3_state_init(struct hnae3_handle *handle)
|
||||
set_bit(HNS3_NIC_STATE_RXD_ADV_LAYOUT_ENABLE, &priv->state);
|
||||
}
|
||||
|
||||
static void hns3_state_uninit(struct hnae3_handle *handle)
|
||||
{
|
||||
struct hns3_nic_priv *priv = handle->priv;
|
||||
|
||||
clear_bit(HNS3_NIC_STATE_INITED, &priv->state);
|
||||
}
|
||||
|
||||
static int hns3_client_init(struct hnae3_handle *handle)
|
||||
{
|
||||
struct pci_dev *pdev = handle->pdev;
|
||||
@ -5320,7 +5327,9 @@ static int hns3_client_init(struct hnae3_handle *handle)
|
||||
return ret;
|
||||
|
||||
out_reg_netdev_fail:
|
||||
hns3_state_uninit(handle);
|
||||
hns3_dbg_uninit(handle);
|
||||
hns3_client_stop(handle);
|
||||
out_client_start:
|
||||
hns3_free_rx_cpu_rmap(netdev);
|
||||
hns3_nic_uninit_irq(priv);
|
||||
|
Loading…
x
Reference in New Issue
Block a user