Skip to content

Commit 635ddb8

Browse files
niharcygregkh
authored andcommitted
staging: gpib: ni_usb: 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() statements indicating the fail and 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 e3f4b64 commit 635ddb8

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

drivers/staging/gpib/ni_usb/ni_usb_gpib.c

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2619,12 +2619,23 @@ static struct usb_driver ni_usb_bus_driver = {
26192619
static int __init ni_usb_init_module(void)
26202620
{
26212621
int i;
2622+
int ret;
26222623

26232624
pr_info("ni_usb_gpib driver loading\n");
26242625
for (i = 0; i < MAX_NUM_NI_USB_INTERFACES; i++)
26252626
ni_usb_driver_interfaces[i] = NULL;
2626-
usb_register(&ni_usb_bus_driver);
2627-
gpib_register_driver(&ni_usb_gpib_interface, THIS_MODULE);
2627+
2628+
ret = usb_register(&ni_usb_bus_driver);
2629+
if (ret) {
2630+
pr_err("ni_usb_gpib: usb_register failed: error = %d\n", ret);
2631+
return ret;
2632+
}
2633+
2634+
ret = gpib_register_driver(&ni_usb_gpib_interface, THIS_MODULE);
2635+
if (ret) {
2636+
pr_err("ni_usb_gpib: gpib_register_driver failed: error = %d\n", ret);
2637+
return ret;
2638+
}
26282639

26292640
return 0;
26302641
}

0 commit comments

Comments
 (0)