]> git.karo-electronics.de Git - karo-tx-linux.git/commit
USB: for usb_autopm_get_interface_async -EINPROGRESS is not an error
authorJim Wylder <jwylder1@motorola.com>
Wed, 7 Sep 2011 02:07:20 +0000 (21:07 -0500)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 11 Nov 2011 17:42:12 +0000 (09:42 -0800)
commitd8d92c4fdbcf740765e4a3f95a8476f78568b3eb
tree3b6dd3e70274f849e11fed487b6ddb0c4b322227
parent368f255e470106869fcae4e2e7b2a911f944a7d1
USB: for usb_autopm_get_interface_async -EINPROGRESS is not an error

commit c5a48592d874ddef8c7880311581eccf0eb30c3b upstream.

A return value of -EINPROGRESS from pm_runtime_get indicates that
the device is already resuming due to a previous call.  Internally,
usb_autopm_get_interface_async doesn't treat this as an error and
increments the usage count, but passes the error status along
to the caller.  The logical assumption of the caller is that
any negative return value reflects the device not resuming
and the pm_usage_cnt not being incremented.  Since the usage count
is being incremented and the device is resuming, return success (0)
instead.

Signed-off-by: James Wylder <james.wylder@motorola.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/core/driver.c