Based on the documentation of usb_[disable|enable]_autosuspend(), the caller must hold udev's device lock. Signed-off-by: Salah Triki <salah.triki@xxxxxxxxx> --- drivers/usb/chipidea/otg_fsm.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/usb/chipidea/otg_fsm.c b/drivers/usb/chipidea/otg_fsm.c index 6ed4b00dba96..2d4174250432 100644 --- a/drivers/usb/chipidea/otg_fsm.c +++ b/drivers/usb/chipidea/otg_fsm.c @@ -518,12 +518,14 @@ static void ci_otg_loc_sof(struct otg_fsm *fsm, int on) if (!udev) return; + usb_lock_device(udev); if (on) { usb_disable_autosuspend(udev); } else { pm_runtime_set_autosuspend_delay(&udev->dev, 0); usb_enable_autosuspend(udev); } + usb_unlock_device(udev); } /* -- 2.25.1