[PATCH] usb: hub: wrong order of putting interfaces when processing hub events

From: Petr Mladek
Date: Fri Sep 12 2014 - 08:20:41 EST


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-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/