diff options
author | Johan Hovold <jhovold@gmail.com> | 2014-05-26 17:23:03 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-05-27 22:04:04 (GMT) |
commit | a283d080a49a5014f525bf722e5a6a07835e45ef (patch) | |
tree | d61b4d225b95cc1eb6d21805fff7a119a0591395 /drivers/usb/serial | |
parent | 40d88983cee801cb9aef00e514b3ebf3a51f6c7e (diff) | |
download | linux-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.c | 10 |
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); |