usb_autopm_put_interface() must be called only when usb_autopm_get_interface() succeeded before. There was wrong ordering of the goto targets. The funny thing is that the names of the goto targets and the related comments were correct. Signed-off-by: Petr Mladek <pmladek@xxxxxxx> --- drivers/usb/core/hub.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index d481c99a20d7..6afd79ee3340 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -5132,12 +5132,12 @@ static void hub_events(void) loop_autopm: /* Balance the usb_autopm_get_interface() above */ - usb_autopm_put_interface_no_suspend(intf); + usb_autopm_put_interface(intf); loop: /* Balance the usb_autopm_get_interface_no_resume() in * kick_khubd() and allow autosuspend. */ - usb_autopm_put_interface(intf); + usb_autopm_put_interface_no_suspend(intf); loop_disconnected: usb_unlock_device(hdev); usb_put_dev(hdev); -- 1.8.4 -- 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