diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2007-01-16 04:12:06 (GMT) |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2007-02-07 23:44:37 (GMT) |
commit | de44743b033942731f6b898c2d389f7ee5ac890b (patch) | |
tree | a7ad370d255443948e23571b0ad658dbbc1e2c13 /drivers/usb/host/ohci-hcd.c | |
parent | 4a1a4d8b87389e35c3af04c0d0a95f6a0391b964 (diff) | |
download | linux-de44743b033942731f6b898c2d389f7ee5ac890b.tar.xz |
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 <benh@kernel.crashing.org>
Cc: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/host/ohci-hcd.c')
-rw-r--r-- | drivers/usb/host/ohci-hcd.c | 33 |
1 files changed, 15 insertions, 18 deletions
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c index 8baecbd..2c4a629 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; } |