Skip to content

Commit 9e43ebc

Browse files
niharcygregkh
authored andcommitted
staging: gpib: agilent_82357a: Handle gpib_register_driver() errors
The usb_register() function can fail and returns an error value which is not returned. The function gpib_register_driver() can also fail which can result in semi-registered module. In case gpib_register_driver() fails unregister the previous usb driver registering function. Return the error value if gpib_register_driver() or usb_register() functions fail. Add pr_err when registering driver fails also indicating 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 f546fa4 commit 9e43ebc

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

drivers/staging/gpib/agilent_82357a/agilent_82357a.c

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1691,12 +1691,24 @@ static struct usb_driver agilent_82357a_bus_driver = {
16911691
static int __init agilent_82357a_init_module(void)
16921692
{
16931693
int i;
1694+
int ret;
16941695

16951696
pr_info("agilent_82357a_gpib driver loading");
16961697
for (i = 0; i < MAX_NUM_82357A_INTERFACES; ++i)
16971698
agilent_82357a_driver_interfaces[i] = NULL;
1698-
usb_register(&agilent_82357a_bus_driver);
1699-
gpib_register_driver(&agilent_82357a_gpib_interface, THIS_MODULE);
1699+
1700+
ret = usb_register(&agilent_82357a_bus_driver);
1701+
if (ret) {
1702+
pr_err("agilent_82357a: usb_register failed: error = %d\n", ret);
1703+
return ret;
1704+
}
1705+
1706+
ret = gpib_register_driver(&agilent_82357a_gpib_interface, THIS_MODULE);
1707+
if (ret) {
1708+
pr_err("agilent_82357a: gpib_register_driver failed: error = %d\n", ret);
1709+
usb_deregister(&agilent_82357a_bus_driver);
1710+
return ret;
1711+
}
17001712

17011713
return 0;
17021714
}

0 commit comments

Comments
 (0)