On Fri, 2014-10-17 at 13:55 +0800, Hayes Wang wrote: > It would cause dead lock for runtime suspend, when the workqueue > is running and runtime suspend occurs before the workqueue wakes > up the device. The rtl8152_suspend() waits the workqueue to finish > because of calling cancel_delayed_work_sync(). The workqueue waits > the suspend function to finish for waking up the device because of > calling usb_autopm_get_interface(). The diagnosis is good, the fix is not good. It opens a race during which the queued work can touch a suspended device. Regards Oliver -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html