diff options
author | David Brownell <david-b@pacbell.net> | 2008-07-01 16:18:20 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2008-07-21 18:16:48 -0400 |
commit | ac90e36592ea5171c4e70f58b39a782d871a7d9f (patch) | |
tree | 00cb3eb55e6fa3e08d82b181b07c580260484c2b /drivers/usb | |
parent | c24f42276b4c4467e82cdd5a941fb7f9400aeea0 (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>
Diffstat (limited to 'drivers/usb')
-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) | |||
124 | return status; | 124 | return status; |
125 | 125 | ||
126 | status = acm_bind_config(c, 0); | 126 | status = acm_bind_config(c, 0); |
127 | if (status == 0) | 127 | if (status < 0) |
128 | return status; | 128 | return status; |
129 | 129 | ||
130 | return 0; | 130 | 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) | |||
1090 | unsigned i; | 1090 | unsigned i; |
1091 | struct gs_port *port; | 1091 | struct gs_port *port; |
1092 | 1092 | ||
1093 | if (!gs_tty_driver) | ||
1094 | return; | ||
1095 | |||
1093 | /* start sysfs and /dev/ttyGS* node removal */ | 1096 | /* start sysfs and /dev/ttyGS* node removal */ |
1094 | for (i = 0; i < n_ports; i++) | 1097 | for (i = 0; i < n_ports; i++) |
1095 | tty_unregister_device(gs_tty_driver, i); | 1098 | tty_unregister_device(gs_tty_driver, i); |