summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorNihar Chaithanya <niharchaithanya@gmail.com>2024-12-31 00:26:30 +0530
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-01-07 15:38:55 +0100
commit44aaeb2c0843ea37f6235c173d2e8f8df3be1704 (patch)
tree5850cb0a7a9520a988fa302eda60bfe48db52d6a /drivers
parent4e12a0928978451f92f6c10f71ef251a082acb3f (diff)
downloadlwn-44aaeb2c0843ea37f6235c173d2e8f8df3be1704.tar.gz
lwn-44aaeb2c0843ea37f6235c173d2e8f8df3be1704.zip
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 <niharchaithanya@gmail.com> Link: https://lore.kernel.org/r/20241230185633.175690-11-niharchaithanya@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/staging/gpib/hp_82341/hp_82341.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/drivers/staging/gpib/hp_82341/hp_82341.c b/drivers/staging/gpib/hp_82341/hp_82341.c
index 8ad1c885a9fb..4953dac1e177 100644
--- a/drivers/staging/gpib/hp_82341/hp_82341.c
+++ b/drivers/staging/gpib/hp_82341/hp_82341.c
@@ -807,8 +807,21 @@ MODULE_DEVICE_TABLE(pnp, hp_82341_pnp_table);
static int __init hp_82341_init_module(void)
{
- gpib_register_driver(&hp_82341_unaccel_interface, THIS_MODULE);
- gpib_register_driver(&hp_82341_interface, THIS_MODULE);
+ int ret;
+
+ ret = gpib_register_driver(&hp_82341_unaccel_interface, THIS_MODULE);
+ if (ret) {
+ pr_err("hp_82341: gpib_register_driver failed: error = %d\n", ret);
+ return ret;
+ }
+
+ ret = gpib_register_driver(&hp_82341_interface, THIS_MODULE);
+ if (ret) {
+ pr_err("hp_82341: gpib_register_driver failed: error = %d\n", ret);
+ gpib_unregister_driver(&hp_82341_unaccel_interface);
+ return ret;
+ }
+
return 0;
}