Skip to content

Commit c180420

Browse files
tmon-nordicjhedberg
authored andcommitted
drivers: udc_dwc2: Fix memory leak on subsequent bus resets
Do not queue new buffer after bus reset if there is one already queued. This fixes memory leak on each bus reset if there are no SETUP transfers received between resets. Signed-off-by: Tomasz Moń <[email protected]>
1 parent 134042c commit c180420

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

drivers/usb/udc/udc_dwc2.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -437,6 +437,11 @@ static void dwc2_ensure_setup_ready(const struct device *dev)
437437
} else {
438438
struct udc_dwc2_data *const priv = udc_get_private(dev);
439439

440+
if (udc_ep_is_busy(udc_get_ep_cfg(dev, USB_CONTROL_EP_OUT))) {
441+
/* There is already buffer queued */
442+
return;
443+
}
444+
440445
/* Enable EP0 OUT only if there is no pending EP0 IN transfer
441446
* after which the stack has to enable EP0 OUT.
442447
*/

0 commit comments

Comments
 (0)