Skip to content

Commit

Permalink
USB: ohci error handling cleanup
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Benjamin Herrenschmidt authored and Greg Kroah-Hartman committed Feb 7, 2007
1 parent 4a1a4d8 commit de44743
Showing 1 changed file with 15 additions and 18 deletions.
33 changes: 15 additions & 18 deletions drivers/usb/host/ohci-hcd.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
}
Expand Down

0 comments on commit de44743

Please sign in to comment.