Loading drivers/usb/serial/usb_wwan.c +16 −11 Original line number Diff line number Diff line Loading @@ -621,28 +621,33 @@ EXPORT_SYMBOL(usb_wwan_suspend); static int play_delayed(struct usb_serial_port *port) { struct usb_serial *serial = port->serial; struct usb_wwan_intf_private *data; struct usb_wwan_port_private *portdata; struct urb *urb; int err = 0; int err_count = 0; int err; portdata = usb_get_serial_port_data(port); data = port->serial->private; while ((urb = usb_get_from_anchor(&portdata->delayed))) { err = usb_submit_urb(urb, GFP_ATOMIC); if (!err) { data->in_flight++; } else { /* we have to throw away the rest */ do { if (err) { dev_err(&port->dev, "%s: submit write urb failed: %d\n", __func__, err); err_count++; unbusy_queued_urb(urb, portdata); usb_autopm_put_interface_no_suspend(port->serial->interface); } while ((urb = usb_get_from_anchor(&portdata->delayed))); break; usb_autopm_put_interface_async(serial->interface); continue; } data->in_flight++; } return err; if (err_count) return -EIO; return 0; } int usb_wwan_resume(struct usb_serial *serial) Loading Loading
drivers/usb/serial/usb_wwan.c +16 −11 Original line number Diff line number Diff line Loading @@ -621,28 +621,33 @@ EXPORT_SYMBOL(usb_wwan_suspend); static int play_delayed(struct usb_serial_port *port) { struct usb_serial *serial = port->serial; struct usb_wwan_intf_private *data; struct usb_wwan_port_private *portdata; struct urb *urb; int err = 0; int err_count = 0; int err; portdata = usb_get_serial_port_data(port); data = port->serial->private; while ((urb = usb_get_from_anchor(&portdata->delayed))) { err = usb_submit_urb(urb, GFP_ATOMIC); if (!err) { data->in_flight++; } else { /* we have to throw away the rest */ do { if (err) { dev_err(&port->dev, "%s: submit write urb failed: %d\n", __func__, err); err_count++; unbusy_queued_urb(urb, portdata); usb_autopm_put_interface_no_suspend(port->serial->interface); } while ((urb = usb_get_from_anchor(&portdata->delayed))); break; usb_autopm_put_interface_async(serial->interface); continue; } data->in_flight++; } return err; if (err_count) return -EIO; return 0; } int usb_wwan_resume(struct usb_serial *serial) Loading