struct rfkill *bluetooth_rfkill;
        struct rfkill *wwan3g_rfkill;
        struct hotplug_slot *hotplug_slot;
+       struct work_struct hotplug_work;
 };
 
 /* The actual device the driver binds to */
        return 0;
 }
 
-static void eeepc_rfkill_hotplug(void)
+static void eeepc_hotplug_work(struct work_struct *work)
 {
        struct pci_dev *dev;
        struct pci_bus *bus = pci_find_bus(0, 1);
        if (event != ACPI_NOTIFY_BUS_CHECK)
                return;
 
-       eeepc_rfkill_hotplug();
+       schedule_work(&ehotk->hotplug_work);
 }
 
 static void eeepc_hotk_notify(struct acpi_device *device, u32 event)
 
                rfkill_set_sw_state(ehotk->wlan_rfkill, wlan != 1);
 
-               eeepc_rfkill_hotplug();
+               schedule_work(&ehotk->hotplug_work);
        }
 
        if (ehotk->bluetooth_rfkill)
 {
        int result = 0;
 
+       INIT_WORK(&ehotk->hotplug_work, eeepc_hotplug_work);
+
        eeepc_register_rfkill_notifier("\\_SB.PCI0.P0P6");
        eeepc_register_rfkill_notifier("\\_SB.PCI0.P0P7");