usb: gadget: net2272: cleanup pci_register_driver() error path
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>
This commit is contained in:
parent
7eca4c5a8b
commit
e4fe056ed3
1 changed files with 26 additions and 5 deletions
|
@ -2611,9 +2611,19 @@ static struct pci_driver net2272_pci_driver = {
|
||||||
.remove = __devexit_p(net2272_pci_remove),
|
.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
|
#else
|
||||||
# define pci_register_driver(x) 1
|
static inline int net2272_pci_register(void) { return 0; }
|
||||||
# define pci_unregister_driver(x) 1
|
static inline void net2272_pci_unregister(void) { }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
@ -2713,14 +2723,25 @@ static struct platform_driver net2272_plat_driver = {
|
||||||
|
|
||||||
static int __init net2272_init(void)
|
static int __init net2272_init(void)
|
||||||
{
|
{
|
||||||
return pci_register_driver(&net2272_pci_driver) &
|
int ret;
|
||||||
platform_driver_register(&net2272_plat_driver);
|
|
||||||
|
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);
|
module_init(net2272_init);
|
||||||
|
|
||||||
static void __exit net2272_cleanup(void)
|
static void __exit net2272_cleanup(void)
|
||||||
{
|
{
|
||||||
pci_unregister_driver(&net2272_pci_driver);
|
net2272_pci_unregister();
|
||||||
platform_driver_unregister(&net2272_plat_driver);
|
platform_driver_unregister(&net2272_plat_driver);
|
||||||
}
|
}
|
||||||
module_exit(net2272_cleanup);
|
module_exit(net2272_cleanup);
|
||||||
|
|
Loading…
Add table
Reference in a new issue