aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/core/usb.c
diff options
context:
space:
mode:
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>2016-01-21 00:42:59 +0100
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2016-01-21 00:42:59 +0100
commit6efd3f8cde1d6acc20a715ac6ea17e01421742df (patch)
tree5fc4caece6907a2ccdeb8b13b887a01d683d9803 /drivers/usb/core/usb.c
parentMerge branches 'acpica', 'acpi-video' and 'acpi-fan' (diff)
parentdriver core: Avoid NULL pointer dereferences in device_is_bound() (diff)
downloadlinux-dev-6efd3f8cde1d6acc20a715ac6ea17e01421742df.tar.xz
linux-dev-6efd3f8cde1d6acc20a715ac6ea17e01421742df.zip
Merge branch 'pm-core'
* pm-core: driver core: Avoid NULL pointer dereferences in device_is_bound() platform: Do not detach from PM domains on shutdown USB / PM: Allow USB devices to remain runtime-suspended when sleeping PM / sleep: Go direct_complete if driver has no callbacks PM / Domains: add setter for dev.pm_domain device core: add device_is_bound()
Diffstat (limited to 'drivers/usb/core/usb.c')
-rw-r--r--drivers/usb/core/usb.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
index f8bbd0b6d9fe..cafc11902794 100644
--- a/drivers/usb/core/usb.c
+++ b/drivers/usb/core/usb.c
@@ -316,7 +316,13 @@ static int usb_dev_uevent(struct device *dev, struct kobj_uevent_env *env)
static int usb_dev_prepare(struct device *dev)
{
- return 0; /* Implement eventually? */
+ struct usb_device *udev = to_usb_device(dev);
+
+ /* Return 0 if the current wakeup setting is wrong, otherwise 1 */
+ if (udev->do_remote_wakeup != device_may_wakeup(dev))
+ return 0;
+
+ return 1;
}
static void usb_dev_complete(struct device *dev)