summaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorOliver Neukum <oneukum@suse.de>2007-03-29 10:45:17 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2007-04-27 13:28:38 -0700
commit2f007de2f4296e4dafae6ab0b3cc1bc49443137a (patch)
tree783f9fc150e8271edb9c78156c2e43bb02ba53e2 /drivers/usb
parent9306fff17d3852e088dfc512e6f6673f3d80e71e (diff)
downloadlinux-2f007de2f4296e4dafae6ab0b3cc1bc49443137a.tar.bz2
USB: fix error handling for mct_u232
we report errors to the caller. THis patch adds error handling to the driver. Signed-off-by: Oliver Neukum <oneukum@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/serial/mct_u232.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/usb/serial/mct_u232.c b/drivers/usb/serial/mct_u232.c
index 4cd839b1407f..3db1adc25f84 100644
--- a/drivers/usb/serial/mct_u232.c
+++ b/drivers/usb/serial/mct_u232.c
@@ -438,17 +438,21 @@ static int mct_u232_open (struct usb_serial_port *port, struct file *filp)
if (retval) {
err("usb_submit_urb(read bulk) failed pipe 0x%x err %d",
port->read_urb->pipe, retval);
- goto exit;
+ goto error;
}
port->interrupt_in_urb->dev = port->serial->dev;
retval = usb_submit_urb(port->interrupt_in_urb, GFP_KERNEL);
- if (retval)
+ if (retval) {
+ usb_kill_urb(port->read_urb);
err(" usb_submit_urb(read int) failed pipe 0x%x err %d",
port->interrupt_in_urb->pipe, retval);
-
-exit:
+ goto error;
+ }
return 0;
+
+error:
+ return retval;
} /* mct_u232_open */