if (ret)
                goto out;
 
-       ret = hclge_devlink_init(hdev);
-       if (ret)
-               goto err_pci_uninit;
-
-       devl_lock(hdev->devlink);
-
        /* Firmware command queue initialize */
        ret = hclge_comm_cmd_queue_init(hdev->pdev, &hdev->hw.hw);
        if (ret)
-               goto err_devlink_uninit;
+               goto err_pci_uninit;
 
        /* Firmware command initialize */
        ret = hclge_comm_cmd_init(hdev->ae_dev, &hdev->hw.hw, &hdev->fw_version,
                dev_warn(&pdev->dev,
                         "failed to wake on lan init, ret = %d\n", ret);
 
+       ret = hclge_devlink_init(hdev);
+       if (ret)
+               goto err_ptp_uninit;
+
        hclge_state_init(hdev);
        hdev->last_reset_time = jiffies;
 
                 HCLGE_DRIVER_NAME);
 
        hclge_task_schedule(hdev, round_jiffies_relative(HZ));
-
-       devl_unlock(hdev->devlink);
        return 0;
 
 err_ptp_uninit:
        pci_free_irq_vectors(pdev);
 err_cmd_uninit:
        hclge_comm_cmd_uninit(hdev->ae_dev, &hdev->hw.hw);
-err_devlink_uninit:
-       devl_unlock(hdev->devlink);
-       hclge_devlink_uninit(hdev);
 err_pci_uninit:
        pcim_iounmap(pdev, hdev->hw.hw.io_base);
        pci_release_regions(pdev);
 
        if (ret)
                return ret;
 
-       ret = hclgevf_devlink_init(hdev);
-       if (ret)
-               goto err_devlink_init;
-
        ret = hclge_comm_cmd_queue_init(hdev->pdev, &hdev->hw.hw);
        if (ret)
                goto err_cmd_queue_init;
 
        hclgevf_init_rxd_adv_layout(hdev);
 
+       ret = hclgevf_devlink_init(hdev);
+       if (ret)
+               goto err_config;
+
        set_bit(HCLGEVF_STATE_SERVICE_INITED, &hdev->state);
 
        hdev->last_reset_time = jiffies;
 err_cmd_init:
        hclge_comm_cmd_uninit(hdev->ae_dev, &hdev->hw.hw);
 err_cmd_queue_init:
-       hclgevf_devlink_uninit(hdev);
-err_devlink_init:
        hclgevf_pci_uninit(hdev);
        clear_bit(HCLGEVF_STATE_IRQ_INITED, &hdev->state);
        return ret;