usb_gadget: composite cdc gadget fault handling
David Brownell [Tue, 1 Jul 2008 20:18:20 +0000 (13:18 -0700)]
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>

drivers/usb/gadget/cdc2.c
drivers/usb/gadget/u_serial.c

index 289c752..d490d02 100644 (file)
@@ -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;
index 88d4f54..abf9505 100644 (file)
@@ -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);