As per Dmitry Torokhov's suggestion, acer-wmi doesn't need a private
workqueue, so remove it.
Signed-off-by: Carlos Corbacho <carlos@strangeworlds.co.uk>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Len Brown <len.brown@intel.com>
-static struct workqueue_struct *rfkill_workqueue;
-
static void acer_rfkill_update(struct work_struct *ignored);
static DECLARE_DELAYED_WORK(acer_rfkill_work, acer_rfkill_update);
static void acer_rfkill_update(struct work_struct *ignored)
static void acer_rfkill_update(struct work_struct *ignored);
static DECLARE_DELAYED_WORK(acer_rfkill_work, acer_rfkill_update);
static void acer_rfkill_update(struct work_struct *ignored)
RFKILL_STATE_SOFT_BLOCKED);
}
RFKILL_STATE_SOFT_BLOCKED);
}
- queue_delayed_work(rfkill_workqueue, &acer_rfkill_work,
- round_jiffies_relative(HZ));
+ schedule_delayed_work(&acer_rfkill_work, round_jiffies_relative(HZ));
}
static int acer_rfkill_set(void *data, enum rfkill_state state)
}
static int acer_rfkill_set(void *data, enum rfkill_state state)
- rfkill_workqueue = create_singlethread_workqueue("rfkill_workqueue");
- if (!rfkill_workqueue) {
- if (has_cap(ACER_CAP_BLUETOOTH)) {
- kfree(bluetooth_rfkill->data);
- rfkill_unregister(bluetooth_rfkill);
- }
- kfree(wireless_rfkill->data);
- rfkill_unregister(wireless_rfkill);
- return -ENOMEM;
- }
- queue_delayed_work(rfkill_workqueue, &acer_rfkill_work, HZ);
+ schedule_delayed_work(&acer_rfkill_work, round_jiffies_relative(HZ));
static void acer_rfkill_exit(void)
{
cancel_delayed_work_sync(&acer_rfkill_work);
static void acer_rfkill_exit(void)
{
cancel_delayed_work_sync(&acer_rfkill_work);
- destroy_workqueue(rfkill_workqueue);
kfree(wireless_rfkill->data);
rfkill_unregister(wireless_rfkill);
if (has_cap(ACER_CAP_BLUETOOTH)) {
kfree(wireless_rfkill->data);
rfkill_unregister(wireless_rfkill);
if (has_cap(ACER_CAP_BLUETOOTH)) {