/*
  * Rfkill devices
  */
-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)
                                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)
                }
        }
 
-       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));
 
        return 0;
 }
 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)) {