[net] net: defxx: Fix missing err handling in dfx_init()
Commit Message
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(-)
Comments
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
@@ -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;
}