mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-09 22:24:04 +08:00
net: hns3: use HCLGE_STATE_NIC_REGISTERED to indicate PF NIC client has registered
When PF NIC client's init_instance() succeeds, it means this client has been registered successfully, so we use HCLGE_STATE_NIC_REGISTERED to indicate that. And before calling PF NIC client's uninit_instance(), we clear this state. So any operation of PF NIC client from HCLGE is not allowed if this state is not set. 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>
This commit is contained in:
parent
33a90e2f20
commit
bd9109c9b1
@ -2873,6 +2873,10 @@ int hclge_notify_client(struct hclge_dev *hdev,
|
||||
struct hnae3_client *client = hdev->nic_client;
|
||||
u16 i;
|
||||
|
||||
if (!test_bit(HCLGE_STATE_NIC_REGISTERED, &hdev->state) ||
|
||||
!client)
|
||||
return 0;
|
||||
|
||||
if (!client->ops->reset_notify)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
@ -8184,6 +8188,7 @@ static int hclge_init_client_instance(struct hnae3_client *client,
|
||||
goto clear_nic;
|
||||
|
||||
hnae3_set_client_init_flag(client, ae_dev, 1);
|
||||
set_bit(HCLGE_STATE_NIC_REGISTERED, &hdev->state);
|
||||
|
||||
if (netif_msg_drv(&hdev->vport->nic))
|
||||
hclge_info_show(hdev);
|
||||
@ -8270,6 +8275,7 @@ static void hclge_uninit_client_instance(struct hnae3_client *client,
|
||||
if (client->type == HNAE3_CLIENT_ROCE)
|
||||
return;
|
||||
if (hdev->nic_client && client->ops->uninit_instance) {
|
||||
clear_bit(HCLGE_STATE_NIC_REGISTERED, &hdev->state);
|
||||
client->ops->uninit_instance(&vport->nic, 0);
|
||||
hdev->nic_client = NULL;
|
||||
vport->nic.client = NULL;
|
||||
|
@ -201,6 +201,7 @@ enum HCLGE_DEV_STATE {
|
||||
HCLGE_STATE_DOWN,
|
||||
HCLGE_STATE_DISABLED,
|
||||
HCLGE_STATE_REMOVING,
|
||||
HCLGE_STATE_NIC_REGISTERED,
|
||||
HCLGE_STATE_SERVICE_INITED,
|
||||
HCLGE_STATE_SERVICE_SCHED,
|
||||
HCLGE_STATE_RST_SERVICE_SCHED,
|
||||
|
Loading…
Reference in New Issue
Block a user