]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
usb: gadget: core: force synchronous registration
authorJohn Keeping <jkeeping@inmusicbrands.com>
Fri, 13 Sep 2024 10:23:23 +0000 (11:23 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 4 Oct 2024 13:28:43 +0000 (15:28 +0200)
Registering a gadget driver is expected to complete synchronously and
immediately after calling driver_register() this function checks that
the driver has bound so as to return an error.

Set PROBE_FORCE_SYNCHRONOUS to ensure this is the case even when
asynchronous probing is set as the default.

Fixes: fc274c1e99731 ("USB: gadget: Add a new bus for gadgets")
Cc: stable@vger.kernel.org
Signed-off-by: John Keeping <jkeeping@inmusicbrands.com>
Link: https://lore.kernel.org/r/20240913102325.2826261-1-jkeeping@inmusicbrands.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/gadget/udc/core.c

index cf6478f97f4a3db1784d016a8b0d2610bd2891ad..a6f46364be65f08a2462fcc7700a779dcac42116 100644 (file)
@@ -1696,6 +1696,7 @@ int usb_gadget_register_driver_owner(struct usb_gadget_driver *driver,
        driver->driver.bus = &gadget_bus_type;
        driver->driver.owner = owner;
        driver->driver.mod_name = mod_name;
+       driver->driver.probe_type = PROBE_FORCE_SYNCHRONOUS;
        ret = driver_register(&driver->driver);
        if (ret) {
                pr_warn("%s: driver registration failed: %d\n",