]> www.infradead.org Git - users/willy/linux.git/commitdiff
staging: gpib: hp_82341: Handle gpib_register_driver() errors
authorNihar Chaithanya <niharchaithanya@gmail.com>
Mon, 30 Dec 2024 18:56:30 +0000 (00:26 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 7 Jan 2025 14:38:55 +0000 (15:38 +0100)
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>
drivers/staging/gpib/hp_82341/hp_82341.c

index 8ad1c885a9fb60aae9035e555830706275a26900..4953dac1e177101dcbc619f7f87c48640f6c57d9 100644 (file)
@@ -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;
 }