From de44743b033942731f6b898c2d389f7ee5ac890b Mon Sep 17 00:00:00 2001 From: Benjamin Herrenschmidt Date: Mon, 15 Jan 2007 20:12:06 -0800 Subject: 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 --- drivers/usb/host/ohci-hcd.c | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) (limited to 'drivers/usb/host') diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c index 8baecbdf062..2c4a6299e4c 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; } -- cgit v1.2.3