summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Brownell <david-b@pacbell.net>2008-07-01 13:18:20 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2008-07-21 15:16:48 -0700
commitac90e36592ea5171c4e70f58b39a782d871a7d9f (patch)
tree00cb3eb55e6fa3e08d82b181b07c580260484c2b
parentc24f42276b4c4467e82cdd5a941fb7f9400aeea0 (diff)
usb_gadget: composite cdc gadget fault handling
These two fixes ensure the new "CDC Composite Device" gadget fails cleanly when it's loaded on hardware that can't support this particular gadget driver. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/usb/gadget/cdc2.c2
-rw-r--r--drivers/usb/gadget/u_serial.c3
2 files changed, 4 insertions, 1 deletions
diff --git a/drivers/usb/gadget/cdc2.c b/drivers/usb/gadget/cdc2.c
index 289c7527713..d490d028950 100644
--- a/drivers/usb/gadget/cdc2.c
+++ b/drivers/usb/gadget/cdc2.c
@@ -124,7 +124,7 @@ static int __init cdc_do_config(struct usb_configuration *c)
return status;
status = acm_bind_config(c, 0);
- if (status == 0)
+ if (status < 0)
return status;
return 0;
diff --git a/drivers/usb/gadget/u_serial.c b/drivers/usb/gadget/u_serial.c
index 88d4f5452c4..abf9505d3a7 100644
--- a/drivers/usb/gadget/u_serial.c
+++ b/drivers/usb/gadget/u_serial.c
@@ -1090,6 +1090,9 @@ void gserial_cleanup(void)
unsigned i;
struct gs_port *port;
+ if (!gs_tty_driver)
+ return;
+
/* start sysfs and /dev/ttyGS* node removal */
for (i = 0; i < n_ports; i++)
tty_unregister_device(gs_tty_driver, i);