#define to_mdev(d) container_of(d, struct most_dev, iface)
 #define to_mdev_from_work(w) container_of(w, struct most_dev, poll_work_obj)
 
-static struct workqueue_struct *schedule_usb_work;
 static void wq_clear_halt(struct work_struct *wq_obj);
 static void wq_netinfo(struct work_struct *wq_obj);
 
                kfree(anchor);
        }
        spin_unlock_irqrestore(&mdev->anchor_list_lock[channel], flags);
+
+       cancel_work_sync(&anchor->clear_work_obj);
 }
 
 /**
                        mbo->status = MBO_E_INVAL;
                        usb_unlink_urb(urb);
                        INIT_WORK(&anchor->clear_work_obj, wq_clear_halt);
-                       queue_work(schedule_usb_work, &anchor->clear_work_obj);
+                       schedule_work(&anchor->clear_work_obj);
                        return;
                case -ENODEV:
                case -EPROTO:
                        mbo->status = MBO_E_INVAL;
                        usb_unlink_urb(urb);
                        INIT_WORK(&anchor->clear_work_obj, wq_clear_halt);
-                       queue_work(schedule_usb_work, &anchor->clear_work_obj);
+                       schedule_work(&anchor->clear_work_obj);
                        return;
                case -ENODEV:
                case -EPROTO:
 {
        struct most_dev *mdev = (struct most_dev *)data;
 
-       queue_work(schedule_usb_work, &mdev->poll_work_obj);
+       schedule_work(&mdev->poll_work_obj);
        mdev->link_stat_timer.expires = jiffies + (2 * HZ);
        add_timer(&mdev->link_stat_timer);
 }
                pr_err("could not register hdm_usb driver\n");
                return -EIO;
        }
-       schedule_usb_work = create_workqueue("hdmu_work");
-       if (!schedule_usb_work) {
-               pr_err("could not create workqueue\n");
-               usb_deregister(&hdm_usb);
-               return -ENOMEM;
-       }
+
        return 0;
 }
 
 static void __exit hdm_usb_exit(void)
 {
        pr_info("hdm_usb_exit()\n");
-       destroy_workqueue(schedule_usb_work);
        usb_deregister(&hdm_usb);
 }