From: Johan Hovold Date: Mon, 26 May 2014 17:23:27 +0000 (+0200) Subject: USB: usb_wwan: clean up delayed-urb submission X-Git-Tag: firefly_0821_release~176^2~3465^2~37^2~104 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=3362c91c7841f2e4ab5b1f018a5da0ecbc924894;p=firefly-linux-kernel-4.4.55.git USB: usb_wwan: clean up delayed-urb submission Clean up and rename delay-urb submission function using a more descriptive name. Also add comment on locking assumptions. Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/usb/serial/usb_wwan.c b/drivers/usb/serial/usb_wwan.c index b83aa60bbbdb..45bc11b2d0ec 100644 --- a/drivers/usb/serial/usb_wwan.c +++ b/drivers/usb/serial/usb_wwan.c @@ -602,7 +602,8 @@ int usb_wwan_suspend(struct usb_serial *serial, pm_message_t message) } EXPORT_SYMBOL(usb_wwan_suspend); -static int play_delayed(struct usb_serial_port *port) +/* Caller must hold susp_lock. */ +static int usb_wwan_submit_delayed_urbs(struct usb_serial_port *port) { struct usb_serial *serial = port->serial; struct usb_wwan_intf_private *data = usb_get_serial_data(serial); @@ -613,11 +614,14 @@ static int play_delayed(struct usb_serial_port *port) portdata = usb_get_serial_port_data(port); - while ((urb = usb_get_from_anchor(&portdata->delayed))) { + for (;;) { + urb = usb_get_from_anchor(&portdata->delayed); + if (!urb) + break; + err = usb_submit_urb(urb, GFP_ATOMIC); if (err) { - dev_err(&port->dev, - "%s: submit write urb failed: %d\n", + dev_err(&port->dev, "%s: submit urb failed: %d\n", __func__, err); err_count++; unbusy_queued_urb(urb, portdata); @@ -664,7 +668,7 @@ int usb_wwan_resume(struct usb_serial *serial) } } - err = play_delayed(port); + err = usb_wwan_submit_delayed_urbs(port); if (err) err_count++;