summaryrefslogtreecommitdiff
path: root/drivers/usb/usbip/vudc_transfer.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/usbip/vudc_transfer.c')
-rw-r--r--drivers/usb/usbip/vudc_transfer.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/usb/usbip/vudc_transfer.c b/drivers/usb/usbip/vudc_transfer.c
index a4f02ea3e3ef..d4ce85c4c6a2 100644
--- a/drivers/usb/usbip/vudc_transfer.c
+++ b/drivers/usb/usbip/vudc_transfer.c
@@ -490,7 +490,8 @@ void v_stop_timer(struct vudc *udc)
{
struct transfer_timer *t = &udc->tr_timer;
- /* timer itself will take care of stopping */
+ /* Delete the timer synchronously before teardown frees udc. */
dev_dbg(&udc->pdev->dev, "timer stop");
+ timer_delete_sync(&t->timer);
t->state = VUDC_TR_STOPPED;
}