From: Benjamin Herrenschmidt Date: Tue, 16 Jan 2007 04:12:06 +0000 (-0800) Subject: USB: ohci error handling cleanup X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=de44743b033942731f6b898c2d389f7ee5ac890b;p=linux-beck.git USB: ohci error handling cleanup Restructure the ohci_hcd_mod_init error handling code in to better support the multiple platform drivers. This does not change the functionality. Signed-off-by: Benjamin Herrenschmidt Cc: David Brownell Signed-off-by: Geoff Levand Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c index 8baecbdf0621..2c4a6299e4c6 100644 --- a/drivers/usb/host/ohci-hcd.c +++ b/drivers/usb/host/ohci-hcd.c @@ -929,7 +929,6 @@ MODULE_LICENSE ("GPL"); static int __init ohci_hcd_mod_init(void) { int retval = 0; - int ls = 0; if (usb_disabled()) return -ENODEV; @@ -941,46 +940,44 @@ static int __init ohci_hcd_mod_init(void) #ifdef PLATFORM_DRIVER retval = platform_driver_register(&PLATFORM_DRIVER); if (retval < 0) - return retval; - ls++; + goto error_platform; #endif #ifdef OF_PLATFORM_DRIVER retval = of_register_platform_driver(&OF_PLATFORM_DRIVER); if (retval < 0) - goto error; - ls++; + goto error_of_platform; #endif #ifdef SA1111_DRIVER retval = sa1111_driver_register(&SA1111_DRIVER); if (retval < 0) - goto error; - ls++; + goto error_sa1111; #endif #ifdef PCI_DRIVER retval = pci_register_driver(&PCI_DRIVER); if (retval < 0) - goto error; - ls++; + goto error_pci; #endif return retval; /* Error path */ -error: -#ifdef PLATFORM_DRIVER - if (ls--) - platform_driver_unregister(&PLATFORM_DRIVER); +#ifdef PCI_DRIVER + error_pci: +#endif +#ifdef SA1111_DRIVER + sa1111_driver_unregister(&SA1111_DRIVER); + error_sa1111: #endif #ifdef OF_PLATFORM_DRIVER - if (ls--) - of_unregister_platform_driver(&OF_PLATFORM_DRIVER); + of_unregister_platform_driver(&OF_PLATFORM_DRIVER); + error_of_platform: #endif -#ifdef SA1111_DRIVER - if (ls--) - sa1111_driver_unregister(&SA1111_DRIVER); +#ifdef PLATFORM_DRIVER + platform_driver_unregister(&PLATFORM_DRIVER); + error_platform: #endif return retval; }