]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/pci/hotplug/pciehp_core.c
PCI: pciehp: Handle push button event asynchronously
[karo-tx-linux.git] / drivers / pci / hotplug / pciehp_core.c
index aa5f3ff629ff4b798d3b2e473e3e6dfb025be823..b8c99d35ac97af9aef83c5e46b9e9337bf7e9610 100644 (file)
@@ -340,12 +340,18 @@ static int __init pcied_init(void)
 {
        int retval = 0;
 
+       pciehp_wq = alloc_workqueue("pciehp", 0, 0);
+       if (!pciehp_wq)
+               return -ENOMEM;
+
        pciehp_firmware_init();
        retval = pcie_port_service_register(&hpdriver_portdrv);
        dbg("pcie_port_service_register = %d\n", retval);
        info(DRIVER_DESC " version: " DRIVER_VERSION "\n");
-       if (retval)
+       if (retval) {
+               destroy_workqueue(pciehp_wq);
                dbg("Failure to register service\n");
+       }
        return retval;
 }
 
@@ -353,6 +359,7 @@ static void __exit pcied_cleanup(void)
 {
        dbg("unload_pciehpd()\n");
        pcie_port_service_unregister(&hpdriver_portdrv);
+       destroy_workqueue(pciehp_wq);
        info(DRIVER_DESC " version: " DRIVER_VERSION " unloaded\n");
 }