summaryrefslogtreecommitdiffstats
path: root/drivers/usb/serial/generic.c
diff options
context:
space:
mode:
authorJohan Hovold <jhovold@gmail.com>2012-02-10 13:20:49 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-02-10 19:20:36 +0100
commit548dd4b6da8a8e428453d55f7fa7b8a46498d147 (patch)
treee8c3ba7893cebd37f368a7dff70543019800f67a /drivers/usb/serial/generic.c
parentUSB: serial: add macro for console error reporting (diff)
downloadlinux-548dd4b6da8a8e428453d55f7fa7b8a46498d147.tar.xz
linux-548dd4b6da8a8e428453d55f7fa7b8a46498d147.zip
USB: serial: fix console error reporting
Do not report errors in write path if port is used as a console as this may trigger the same error (and error report) resulting in a loop. Reported-by: Stephen Hemminger <shemminger@vyatta.com> Cc: stable <stable@vger.kernel.org> Signed-off-by: Johan Hovold <jhovold@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/serial/generic.c')
-rw-r--r--drivers/usb/serial/generic.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/usb/serial/generic.c b/drivers/usb/serial/generic.c
index f7403576f99f..e129fcd69fd9 100644
--- a/drivers/usb/serial/generic.c
+++ b/drivers/usb/serial/generic.c
@@ -217,8 +217,10 @@ 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",
+ if (!port->port.console) {
+ dev_err(&port->dev, "%s - error submitting urb: %d\n",
__func__, result);
+ }
set_bit(i, &port->write_urbs_free);
spin_lock_irqsave(&port->lock, flags);
port->tx_bytes -= count;