usb: gadgetfs: return USB_GADGET_DELAYED_STATUS from setup()
authorAndrey Konovalov <andreyknvl@gmail.com>
Mon, 28 Aug 2023 15:43:04 +0000 (17:43 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 2 Oct 2023 14:43:05 +0000 (16:43 +0200)
commitfc85c59b85d111f51b58ecf08485fa74ac5471cd
treef06bea30572db9b724d536e01f37ef87e35ee831
parentcf9f7a6ee7b1f53f9ae13da55585b7d16aee2460
usb: gadgetfs: return USB_GADGET_DELAYED_STATUS from setup()

Return USB_GADGET_DELAYED_STATUS from the setup() callback for 0-length
transfers as a workaround to stop some UDC drivers (e.g. dwc3) from
automatically proceeding with the status stage.

This workaround should be removed once all UDC drivers are fixed to
always delay the status stage until a response is queued to EP0.

Reviewed-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Andrey Konovalov <andreyknvl@gmail.com>
Link: https://lore.kernel.org/r/a8d2b91f9890dc21daa359183e84879ff4525180.1693237258.git.andreyknvl@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/gadget/legacy/inode.c