usb: gadget: configfs: Check USB configuration before adding
authorWesley Cheng <wcheng@codeaurora.org>
Sat, 10 Jul 2021 09:13:11 +0000 (02:13 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 12 Jul 2021 07:37:25 +0000 (09:37 +0200)
Ensure that the USB gadget is able to support the configuration being
added based on the number of endpoints required from all interfaces.  This
is for accounting for any bandwidth or space limitations.

Signed-off-by: Wesley Cheng <wcheng@codeaurora.org>
Link: https://lore.kernel.org/r/1625908395-5498-3-git-send-email-wcheng@codeaurora.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/gadget/configfs.c

index 15a607ccef8a23896fbb3019a0341a9dc5d192e0..f4c7c8241fe2b3058f5149366fcafb4d2f0fa229 100644 (file)
@@ -1404,6 +1404,10 @@ static int configfs_composite_bind(struct usb_gadget *gadget,
                                goto err_purge_funcs;
                        }
                }
+               ret = usb_gadget_check_config(cdev->gadget);
+               if (ret)
+                       goto err_purge_funcs;
+
                usb_ep_autoconfig_reset(cdev->gadget);
        }
        if (cdev->use_os_string) {