Hi Ye, Thank you for the patch.
On Fri, May 22, 2026 at 15:55, Ye Li <[email protected]> wrote: > 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 <[email protected]> Fixes: 26cc5129ee64 ("USB: gadaget: add Marvell controller support") Reviewed-by: Mattijs Korpershoek <[email protected]> > --- > 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

