On Mon, Jan 16, 2012 at 7:46 PM, Greg KH <gregkh@xxxxxxx> wrote: > On Mon, Jan 16, 2012 at 10:37:24AM -0800, Stephen Hemminger wrote: >> When using USB serial console, there is an infinite loop on shutdown. >> The console fills with the error message: >> ttyUSB0 - error submitting urb: -22 >> >> It seems that writing the error message is causing the error, which >> cause the message, which causes the error, ... >> The following is needed to avoid the infinite loop. > > Ick. > >> Signed-off-by: Stephen Hemminger <shemminger@xxxxxxxxxx> >> >> --- a/drivers/usb/serial/generic.c 2012-01-10 10:56:58.667176726 -0800 >> +++ b/drivers/usb/serial/generic.c 2012-01-16 09:37:26.754919670 -0800 >> @@ -217,8 +217,6 @@ retry: >> clear_bit(i, &port->write_urbs_free); >> result = usb_submit_urb(urb, GFP_ATOMIC); >> if (result) { >> - dev_err(&port->dev, "%s - error submitting urb: %d\n", >> - __func__, result); > > How about we switch this to dev_dbg()? "Normal" users will never see > this then. Will that work for you? Or, may I suggest, something along the lines of if (result) { if (!port->port.console) dev_err(... This way the error will generally not get lost, and it will be (more) clear why we're using dev_dbg rather then dev_err (and thus less likely to be changed back in the future). The remaining custom write implementations should probably be audited for dev_err (and friends) in their write paths as well. Thanks, Johan -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html