summaryrefslogtreecommitdiff
path: root/drivers/usb/serial
diff options
context:
space:
mode:
authorJohan Hovold <jhovold@gmail.com>2014-05-26 17:23:03 (GMT)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-05-27 22:04:04 (GMT)
commita283d080a49a5014f525bf722e5a6a07835e45ef (patch)
treed61b4d225b95cc1eb6d21805fff7a119a0591395 /drivers/usb/serial
parent40d88983cee801cb9aef00e514b3ebf3a51f6c7e (diff)
downloadlinux-a283d080a49a5014f525bf722e5a6a07835e45ef.tar.xz
USB: sierra: do not resume I/O on closed ports
Do not resume any I/O, including the delayed write queue, on closed ports. Note that this currently has no functional impact due to the usb_autopm_get_interface() in close(), but that call is about to be removed by a follow-up patch. Signed-off-by: Johan Hovold <jhovold@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/serial')
-rw-r--r--drivers/usb/serial/sierra.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/usb/serial/sierra.c b/drivers/usb/serial/sierra.c
index 74b417c..ac5e20d 100644
--- a/drivers/usb/serial/sierra.c
+++ b/drivers/usb/serial/sierra.c
@@ -1013,7 +1013,7 @@ static int sierra_resume(struct usb_serial *serial)
port = serial->port[i];
portdata = usb_get_serial_port_data(port);
- if (!portdata)
+ if (!portdata || !portdata->opened)
continue;
while ((urb = usb_get_from_anchor(&portdata->delayed))) {
@@ -1036,11 +1036,9 @@ static int sierra_resume(struct usb_serial *serial)
}
}
- if (portdata->opened) {
- err = sierra_submit_rx_urbs(port, GFP_ATOMIC);
- if (err)
- ec++;
- }
+ err = sierra_submit_rx_urbs(port, GFP_ATOMIC);
+ if (err)
+ ec++;
}
intfdata->suspended = 0;
spin_unlock_irq(&intfdata->susp_lock);