• Sarah Sharp's avatar
    usb: Always return 0 or -EBUSY to the runtime PM core. · db7c7c0a
    Sarah Sharp authored
    The PM core reacts badly when the return code from usb_runtime_suspend()
    is not 0, -EAGAIN, or -EBUSY.  The PM core regards this as a fatal error,
    and refuses to run anymore PM helper functions.  In particular,
    usbfs_open() and other usbfs functions will fail because the PM core will
    return an error code when usb_autoresume_device() is called.  This causes
    libusb and/or lsusb to either hang or segfault.
    
    If a USB device cannot suspend for some reason (e.g. a hub doesn't report
    it has remote wakeup capabilities), we still want lsusb and other
    userspace programs to work.  So return -EBUSY, which will fill people's
    log files with failed tries, but will ensure userspace still works.
    Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
    db7c7c0a
driver.c 48.8 KB