Commit de44743b authored by Benjamin Herrenschmidt's avatar Benjamin Herrenschmidt Committed by Greg Kroah-Hartman

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: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: default avatarGeoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 4a1a4d8b
...@@ -929,7 +929,6 @@ MODULE_LICENSE ("GPL"); ...@@ -929,7 +929,6 @@ MODULE_LICENSE ("GPL");
static int __init ohci_hcd_mod_init(void) static int __init ohci_hcd_mod_init(void)
{ {
int retval = 0; int retval = 0;
int ls = 0;
if (usb_disabled()) if (usb_disabled())
return -ENODEV; return -ENODEV;
...@@ -941,46 +940,44 @@ static int __init ohci_hcd_mod_init(void) ...@@ -941,46 +940,44 @@ static int __init ohci_hcd_mod_init(void)
#ifdef PLATFORM_DRIVER #ifdef PLATFORM_DRIVER
retval = platform_driver_register(&PLATFORM_DRIVER); retval = platform_driver_register(&PLATFORM_DRIVER);
if (retval < 0) if (retval < 0)
return retval; goto error_platform;
ls++;
#endif #endif
#ifdef OF_PLATFORM_DRIVER #ifdef OF_PLATFORM_DRIVER
retval = of_register_platform_driver(&OF_PLATFORM_DRIVER); retval = of_register_platform_driver(&OF_PLATFORM_DRIVER);
if (retval < 0) if (retval < 0)
goto error; goto error_of_platform;
ls++;
#endif #endif
#ifdef SA1111_DRIVER #ifdef SA1111_DRIVER
retval = sa1111_driver_register(&SA1111_DRIVER); retval = sa1111_driver_register(&SA1111_DRIVER);
if (retval < 0) if (retval < 0)
goto error; goto error_sa1111;
ls++;
#endif #endif
#ifdef PCI_DRIVER #ifdef PCI_DRIVER
retval = pci_register_driver(&PCI_DRIVER); retval = pci_register_driver(&PCI_DRIVER);
if (retval < 0) if (retval < 0)
goto error; goto error_pci;
ls++;
#endif #endif
return retval; return retval;
/* Error path */ /* Error path */
error: #ifdef PCI_DRIVER
#ifdef PLATFORM_DRIVER error_pci:
if (ls--) #endif
platform_driver_unregister(&PLATFORM_DRIVER); #ifdef SA1111_DRIVER
sa1111_driver_unregister(&SA1111_DRIVER);
error_sa1111:
#endif #endif
#ifdef OF_PLATFORM_DRIVER #ifdef OF_PLATFORM_DRIVER
if (ls--) of_unregister_platform_driver(&OF_PLATFORM_DRIVER);
of_unregister_platform_driver(&OF_PLATFORM_DRIVER); error_of_platform:
#endif #endif
#ifdef SA1111_DRIVER #ifdef PLATFORM_DRIVER
if (ls--) platform_driver_unregister(&PLATFORM_DRIVER);
sa1111_driver_unregister(&SA1111_DRIVER); error_platform:
#endif #endif
return retval; return retval;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment