Skip to content

Commit 44aaeb2

Browse files
niharcygregkh
authored andcommitted
staging: gpib: hp_82341: Handle gpib_register_driver() errors
The function gpib_register_driver() can fail, resulting in a semi-registered module and does not return an error value if it fails. Return the error value if the first gpib_register_driver() fails and if the second gpib_register_driver() fails unregister the first gpib_register_driver() and return the error value. Add pr_err() statements indicating the fail and 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 4e12a09 commit 44aaeb2

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

drivers/staging/gpib/hp_82341/hp_82341.c

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -807,8 +807,21 @@ MODULE_DEVICE_TABLE(pnp, hp_82341_pnp_table);
807807

808808
static int __init hp_82341_init_module(void)
809809
{
810-
gpib_register_driver(&hp_82341_unaccel_interface, THIS_MODULE);
811-
gpib_register_driver(&hp_82341_interface, THIS_MODULE);
810+
int ret;
811+
812+
ret = gpib_register_driver(&hp_82341_unaccel_interface, THIS_MODULE);
813+
if (ret) {
814+
pr_err("hp_82341: gpib_register_driver failed: error = %d\n", ret);
815+
return ret;
816+
}
817+
818+
ret = gpib_register_driver(&hp_82341_interface, THIS_MODULE);
819+
if (ret) {
820+
pr_err("hp_82341: gpib_register_driver failed: error = %d\n", ret);
821+
gpib_unregister_driver(&hp_82341_unaccel_interface);
822+
return ret;
823+
}
824+
812825
return 0;
813826
}
814827

0 commit comments

Comments
 (0)