USB: serial: fix potential runtime pm imbalance at device remove
authorJohan Hovold <jhovold@gmail.com>
Mon, 26 May 2014 17:23:33 +0000 (19:23 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 1 Jul 2014 03:11:58 +0000 (20:11 -0700)
commitf95809545bc634388a3e82c2a9088fe931feccf4
treeec1824abbf612413b6bd4e8df8fb51a606536bd1
parentb9b8bcc97d19a3175e715474c770b3521764c6c9
USB: serial: fix potential runtime pm imbalance at device remove

commit c14829fad88dbeda57253590695b85ba51270621 upstream.

Only call usb_autopm_put_interface() if the corresponding
usb_autopm_get_interface() was successful.

This prevents a potential runtime PM counter imbalance should
usb_autopm_get_interface() fail. Note that the USB PM usage counter is
reset when the interface is unbound, but that the runtime PM counter may
be left unbalanced.

Also add comment on why we don't need to worry about racing
resume/suspend on autopm_get failures.

Fixes: d5fd650cfc7f ("usb: serial: prevent suspend/resume from racing
against probe/remove")

Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/serial/bus.c