Message ID | 20221207072045.604872-1-liuyongqiang13@huawei.com (mailing list archive) |
---|---|
State | Accepted |
Commit | ae18dcdff0f8d7e84cd3fd9f496518b5e72d185d |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] net: defxx: Fix missing err handling in dfx_init() | expand |
Wed, Dec 07, 2022 at 08:20:45AM CET, liuyongqiang13@huawei.com wrote: >When eisa_driver_register() or tc_register_driver() failed, >the modprobe defxx would fail with some err log as follows: > > Error: Driver 'defxx' is already registered, aborting... > >Fix this issue by adding err hanling in dfx_init(). > >Fixes: e89a2cfb7d7b5 ("[TC] defxx: TURBOchannel support") >Signed-off-by: Yongqiang Liu <liuyongqiang13@huawei.com> Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Hello: This patch was applied to netdev/net.git (master) by David S. Miller <davem@davemloft.net>: On Wed, 7 Dec 2022 07:20:45 +0000 you wrote: > When eisa_driver_register() or tc_register_driver() failed, > the modprobe defxx would fail with some err log as follows: > > Error: Driver 'defxx' is already registered, aborting... > > Fix this issue by adding err hanling in dfx_init(). > > [...] Here is the summary with links: - [net] net: defxx: Fix missing err handling in dfx_init() https://git.kernel.org/netdev/net/c/ae18dcdff0f8 You are awesome, thank you!
On Wed, 7 Dec 2022, Jiri Pirko wrote: > >Fixes: e89a2cfb7d7b5 ("[TC] defxx: TURBOchannel support") > >Signed-off-by: Yongqiang Liu <liuyongqiang13@huawei.com> > > Reviewed-by: Jiri Pirko <jiri@nvidia.com> I only got at this change now. Thank you both for taking care of this issue. Acked-by: Maciej W. Rozycki <macro@orcam.me.uk> Maciej
diff --git a/drivers/net/fddi/defxx.c b/drivers/net/fddi/defxx.c index b584ffe38ad6..1fef8a9b1a0f 100644 --- a/drivers/net/fddi/defxx.c +++ b/drivers/net/fddi/defxx.c @@ -3831,10 +3831,24 @@ static int dfx_init(void) int status; status = pci_register_driver(&dfx_pci_driver); - if (!status) - status = eisa_driver_register(&dfx_eisa_driver); - if (!status) - status = tc_register_driver(&dfx_tc_driver); + if (status) + goto err_pci_register; + + status = eisa_driver_register(&dfx_eisa_driver); + if (status) + goto err_eisa_register; + + status = tc_register_driver(&dfx_tc_driver); + if (status) + goto err_tc_register; + + return 0; + +err_tc_register: + eisa_driver_unregister(&dfx_eisa_driver); +err_eisa_register: + pci_unregister_driver(&dfx_pci_driver); +err_pci_register: return status; }
When eisa_driver_register() or tc_register_driver() failed, the modprobe defxx would fail with some err log as follows: Error: Driver 'defxx' is already registered, aborting... Fix this issue by adding err hanling in dfx_init(). Fixes: e89a2cfb7d7b5 ("[TC] defxx: TURBOchannel support") Signed-off-by: Yongqiang Liu <liuyongqiang13@huawei.com> --- drivers/net/fddi/defxx.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-)