[PATCH 2/3] usb: ci_udc: Update usb request status
Ye Li
ye.li at nxp.com
Fri May 22 09:55:11 CEST 2026
usb request status is not set in ci_udc driver. However
in ci_ep_dequeue, it checks the request status for executing
complete callback, so upper layer is not able to free these
enqueued requests when calling usb_ep_dequeue.
Signed-off-by: Ye Li <ye.li at nxp.com>
---
drivers/usb/gadget/ci_udc.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/usb/gadget/ci_udc.c b/drivers/usb/gadget/ci_udc.c
index a62e5ea5658..0baad83ef90 100644
--- a/drivers/usb/gadget/ci_udc.c
+++ b/drivers/usb/gadget/ci_udc.c
@@ -680,6 +680,8 @@ static int ci_ep_queue(struct usb_ep *ep,
if (ret)
return ret;
+ req->status = -EINPROGRESS;
+
DBG("ept%d %s pre-queue req %p, buffer %p\n",
num, in ? "in" : "out", ci_req, ci_req->hw_buf);
list_add_tail(&ci_req->queue, &ci_ep->queue);
@@ -754,6 +756,7 @@ static void handle_ep_complete(struct ci_ep *ci_ep)
ci_ep_submit_next_request(ci_ep);
ci_req->req.actual = ci_req->req.length - len;
+ ci_req->req.status = 0;
ci_debounce(ci_req, in);
DBG("ept%d %s req %p, complete %x\n",
--
2.37.1
More information about the U-Boot
mailing list