Skip to content

Commit

Permalink
usb: gadget: net2272: cleanup pci_register_driver() error path
Browse files Browse the repository at this point in the history
In case pci_register_driver() fails it error will be 0 in case
platform_driver_register() was fine. Also without PCI
pci_register_driver() evaluates to 1 which is well, special. If
platform_driver_register() returns EINVAL or EBUSY we end up with 0.

Acked-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Sebastian Andrzej Siewior authored and Greg Kroah-Hartman committed Jul 1, 2011
1 parent 7eca4c5 commit e4fe056
Showing 1 changed file with 26 additions and 5 deletions.
31 changes: 26 additions & 5 deletions drivers/usb/gadget/net2272.c
Original file line number Diff line number Diff line change
Expand Up @@ -2611,9 +2611,19 @@ static struct pci_driver net2272_pci_driver = {
.remove = __devexit_p(net2272_pci_remove),
};

static int net2272_pci_register(void)
{
return pci_register_driver(&net2272_pci_driver);
}

static void net2272_pci_unregister(void)
{
pci_unregister_driver(&net2272_pci_driver);
}

#else
# define pci_register_driver(x) 1
# define pci_unregister_driver(x) 1
static inline int net2272_pci_register(void) { return 0; }
static inline void net2272_pci_unregister(void) { }
#endif

/*---------------------------------------------------------------------------*/
Expand Down Expand Up @@ -2713,14 +2723,25 @@ static struct platform_driver net2272_plat_driver = {

static int __init net2272_init(void)
{
return pci_register_driver(&net2272_pci_driver) &
platform_driver_register(&net2272_plat_driver);
int ret;

ret = net2272_pci_register();
if (ret)
return ret;
ret = platform_driver_register(&net2272_plat_driver);
if (ret)
goto err_pci;
return ret;

err_pci:
net2272_pci_unregister();
return ret;
}
module_init(net2272_init);

static void __exit net2272_cleanup(void)
{
pci_unregister_driver(&net2272_pci_driver);
net2272_pci_unregister();
platform_driver_unregister(&net2272_plat_driver);
}
module_exit(net2272_cleanup);
Expand Down

0 comments on commit e4fe056

Please sign in to comment.