diff options
author | David Brownell <david-b@pacbell.net> | 2008-07-02 00:18:20 +0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2008-07-22 02:16:48 +0400 |
commit | ac90e36592ea5171c4e70f58b39a782d871a7d9f (patch) | |
tree | 00cb3eb55e6fa3e08d82b181b07c580260484c2b /drivers/usb/gadget | |
parent | c24f42276b4c4467e82cdd5a941fb7f9400aeea0 (diff) | |
download | linux-ac90e36592ea5171c4e70f58b39a782d871a7d9f.tar.xz |
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>
Diffstat (limited to 'drivers/usb/gadget')
-rw-r--r-- | drivers/usb/gadget/cdc2.c | 2 | ||||
-rw-r--r-- | drivers/usb/gadget/u_serial.c | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/drivers/usb/gadget/cdc2.c b/drivers/usb/gadget/cdc2.c index 289c75277135..d490d0289507 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 88d4f5452c49..abf9505d3a75 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); |