USB: Optimize goto logic in API usb_register_driver()
authorZijun Hu <quic_zijuhu@quicinc.com>
Thu, 12 Dec 2024 15:30:05 +0000 (23:30 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 23 Dec 2024 17:40:34 +0000 (18:40 +0100)
usb_register_driver() uses complex goto statements to handle simple error
cases, move down the goto label 'out' a bit to

- Simplify goto logic
- Leverage pr_err() prompt for driver registering failure.

Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
Link: https://lore.kernel.org/r/20241212-fix_usb-v1-1-300eb440c753@quicinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/core/driver.c

index f203fdbfb6f68e6cf52feb077f042045cb9bf3a8..460d4dde5994e783bdcad08b2abb6bb85ab3258f 100644 (file)
@@ -1086,15 +1086,14 @@ int usb_register_driver(struct usb_driver *new_driver, struct module *owner,
        pr_info("%s: registered new interface driver %s\n",
                        usbcore_name, new_driver->name);
 
-out:
-       return retval;
+       return 0;
 
 out_newid:
        driver_unregister(&new_driver->driver);
-
+out:
        pr_err("%s: error %d registering interface driver %s\n",
                usbcore_name, retval, new_driver->name);
-       goto out;
+       return retval;
 }
 EXPORT_SYMBOL_GPL(usb_register_driver);