diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 9d6c085c6d48354eec15e2df441e395b33598b83..9262ef20f7c6bf274cf0794874d3888acd43ee62 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -1084,6 +1084,8 @@ static int __dwc3_gadget_kick_transfer(struct dwc3_ep *dep, u16 cmd_param)
 		 * here and stop, unmap, free and del each of the linked
 		 * requests instead of what we do now.
 		 */
+		if (req->trb)
+			memset(req->trb, 0, sizeof(struct dwc3_trb));
 		dep->queued_requests--;
 		dwc3_gadget_giveback(dep, req, ret);
 		return ret;