diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-07-15 10:06:42 +0100 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-07-15 10:06:42 +0100 |
commit | 4aa96ccf9ee35cdbd0d423e87a4d551019570218 (patch) | |
tree | dca6322681df2e8f33f65c07defce24db68f645c /drivers/usb/core/driver.c | |
parent | cb5fd904f0f14866ab76ec1f6ca3469896e4e2cf (diff) | |
parent | 8f2ffa00fb3c05ec0659cd7b056c4e8e106072f1 (diff) | |
download | op-kernel-dev-4aa96ccf9ee35cdbd0d423e87a4d551019570218.zip op-kernel-dev-4aa96ccf9ee35cdbd0d423e87a4d551019570218.tar.gz |
Merge branch 'kprobes-thumb' of git://git.yxit.co.uk/linux into devel-stable
Diffstat (limited to 'drivers/usb/core/driver.c')
-rw-r--r-- | drivers/usb/core/driver.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c index aa3cc46..34e3da5 100644 --- a/drivers/usb/core/driver.c +++ b/drivers/usb/core/driver.c @@ -1187,13 +1187,22 @@ static int usb_suspend_both(struct usb_device *udev, pm_message_t msg) for (i = n - 1; i >= 0; --i) { intf = udev->actconfig->interface[i]; status = usb_suspend_interface(udev, intf, msg); + + /* Ignore errors during system sleep transitions */ + if (!(msg.event & PM_EVENT_AUTO)) + status = 0; if (status != 0) break; } } - if (status == 0) + if (status == 0) { status = usb_suspend_device(udev, msg); + /* Again, ignore errors during system sleep transitions */ + if (!(msg.event & PM_EVENT_AUTO)) + status = 0; + } + /* If the suspend failed, resume interfaces that did get suspended */ if (status != 0) { msg.event ^= (PM_EVENT_SUSPEND | PM_EVENT_RESUME); |