diff options
author | Johan Hovold <jhovold@gmail.com> | 2011-11-10 14:58:29 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-11-15 10:47:42 -0800 |
commit | 2479e2a9c05899bd8789f8bd48565641806120aa (patch) | |
tree | 449cd0e3aac6625bf3ffa2c4c9deb1610de1f282 /drivers/usb/serial | |
parent | 06946a66546aedfc5192645e8fc56081441e378c (diff) | |
download | blackbird-op-linux-2479e2a9c05899bd8789f8bd48565641806120aa.tar.gz blackbird-op-linux-2479e2a9c05899bd8789f8bd48565641806120aa.zip |
USB: cp210x: forward USB errors to USB serial core
Make sure we forward all error codes (e.g. ENOMEM) to USB serial core.
Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/serial')
-rw-r--r-- | drivers/usb/serial/cp210x.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c index b1e5db161487..7175bb107dec 100644 --- a/drivers/usb/serial/cp210x.c +++ b/drivers/usb/serial/cp210x.c @@ -280,7 +280,10 @@ static int cp210x_get_config(struct usb_serial_port *port, u8 request, dbg("%s - Unable to send config request, " "request=0x%x size=%d result=%d\n", __func__, request, size, result); - return -EPROTO; + if (result > 0) + result = -EPROTO; + + return result; } return 0; @@ -331,7 +334,10 @@ static int cp210x_set_config(struct usb_serial_port *port, u8 request, dbg("%s - Unable to send request, " "request=0x%x size=%d result=%d\n", __func__, request, size, result); - return -EPROTO; + if (result > 0) + result = -EPROTO; + + return result; } return 0; @@ -395,10 +401,11 @@ static int cp210x_open(struct tty_struct *tty, struct usb_serial_port *port) dbg("%s - port %d", __func__, port->number); - if (cp210x_set_config_single(port, CP210X_IFC_ENABLE, UART_ENABLE)) { - dev_err(&port->dev, "%s - Unable to enable UART\n", - __func__); - return -EPROTO; + result = cp210x_set_config_single(port, CP210X_IFC_ENABLE, + UART_ENABLE); + if (result) { + dev_err(&port->dev, "%s - Unable to enable UART\n", __func__); + return result; } result = usb_serial_generic_open(tty, port); |