#include <linux/etherdevice.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
+#include <linux/irq.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/netdevice.h>
        snprintf(hdev->misc_vector.name, HNAE3_INT_NAME_LEN, "%s-misc-%s",
                 HCLGE_NAME, pci_name(hdev->pdev));
        ret = request_irq(hdev->misc_vector.vector_irq, hclge_misc_irq_handle,
-                         0, hdev->misc_vector.name, hdev);
+                         IRQ_NOAUTOEN, hdev->misc_vector.name, hdev);
        if (ret) {
                hclge_free_vector(hdev, 0);
                dev_err(&hdev->pdev->dev, "request misc irq(%d) fail\n",
 
        hclge_init_rxd_adv_layout(hdev);
 
-       /* Enable MISC vector(vector0) */
-       hclge_enable_vector(&hdev->misc_vector, true);
-
        ret = hclge_init_wol(hdev);
        if (ret)
                dev_warn(&pdev->dev,
        hclge_state_init(hdev);
        hdev->last_reset_time = jiffies;
 
+       /* Enable MISC vector(vector0) */
+       enable_irq(hdev->misc_vector.vector_irq);
+       hclge_enable_vector(&hdev->misc_vector, true);
+
        dev_info(&hdev->pdev->dev, "%s driver initialization finished.\n",
                 HCLGE_DRIVER_NAME);
 
 
        /* Disable MISC vector(vector0) */
        hclge_enable_vector(&hdev->misc_vector, false);
-       synchronize_irq(hdev->misc_vector.vector_irq);
+       disable_irq(hdev->misc_vector.vector_irq);
 
        /* Disable all hw interrupts */
        hclge_config_mac_tnl_int(hdev, false);