summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-05-16 15:37:17 (GMT)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-05-16 15:37:17 (GMT)
commitdcd82cd1c249fb85bad3da5d2a07a116cd65a22b (patch)
tree69c42cba689d31a3ac1115c7e1a5e30bd2bc06cf /drivers
parent1c1eaba8e72768156db4faff3a2c3a6ca7dea129 (diff)
downloadlinux-dcd82cd1c249fb85bad3da5d2a07a116cd65a22b.tar.xz
USB: serial: fix up reset_resume callback
If the usb-serial driver doesn't have a reset_resume callback, then we need to tell the USB core that it doesn't, and it needs to rebind the device. Thanks to Alan for pointing out my mistake, and providing the fix. Reported-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/usb/serial/usb-serial.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c
index 846506f..6a1b609 100644
--- a/drivers/usb/serial/usb-serial.c
+++ b/drivers/usb/serial/usb-serial.c
@@ -1176,8 +1176,10 @@ static int usb_serial_reset_resume(struct usb_interface *intf)
serial->suspending = 0;
if (serial->type->reset_resume)
rv = serial->type->reset_resume(serial);
- else
- rv = usb_serial_generic_resume(serial);
+ else {
+ rv = -EOPNOTSUPP;
+ intf->needs_binding = 1;
+ }
return rv;
}