Skip to content

Commit f546fa4

Browse files
niharcygregkh
authored andcommitted
staging: gpib: agilent_82350b: Handle gpib_register_driver() errors
The function gpib_register_driver() can fail which can result in semi-registered module. In case gpib_register_driver() fails unregister the previous gpib and pci registering functions, return the error value. Add pr_err() when registering driver fails also indicate the error value. Signed-off-by: Nihar Chaithanya <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent e999bd2 commit f546fa4

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

drivers/staging/gpib/agilent_82350b/agilent_82350b.c

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -910,13 +910,30 @@ static int __init agilent_82350b_init_module(void)
910910

911911
result = pci_register_driver(&agilent_82350b_pci_driver);
912912
if (result) {
913-
pr_err("agilent_82350b: pci_driver_register failed!\n");
913+
pr_err("agilent_82350b: pci_register_driver failed: error = %d\n", result);
914914
return result;
915915
}
916916

917-
gpib_register_driver(&agilent_82350b_unaccel_interface, THIS_MODULE);
918-
gpib_register_driver(&agilent_82350b_interface, THIS_MODULE);
917+
result = gpib_register_driver(&agilent_82350b_unaccel_interface, THIS_MODULE);
918+
if (result) {
919+
pr_err("agilent_82350b: gpib_register_driver failed: error = %d\n", result);
920+
goto err_unaccel;
921+
}
922+
923+
result = gpib_register_driver(&agilent_82350b_interface, THIS_MODULE);
924+
if (result) {
925+
pr_err("agilent_82350b: gpib_register_driver failed: error = %d\n", result);
926+
goto err_interface;
927+
}
928+
919929
return 0;
930+
931+
err_interface:
932+
gpib_unregister_driver(&agilent_82350b_unaccel_interface);
933+
err_unaccel:
934+
pci_unregister_driver(&agilent_82350b_pci_driver);
935+
936+
return result;
920937
}
921938

922939
static void __exit agilent_82350b_exit_module(void)

0 commit comments

Comments
 (0)