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 <jhov...@gmail.com>
---
 drivers/usb/serial/sierra.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/drivers/usb/serial/sierra.c b/drivers/usb/serial/sierra.c
index 74b417c91e30..ac5e20d9bd24 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);
-- 
1.8.5.5

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to