Messages in this thread | | | Date | Mon, 29 Sep 2014 09:05:50 -0500 | From | Felipe Balbi <> | Subject | Re: [PATCH v6 2/4] usb: gadget: Refactor request completion |
| |
Hi,
On Mon, Sep 29, 2014 at 10:50:02AM +0200, Robert Baldyga wrote: > > diff --git a/drivers/usb/gadget/udc/fsl_qe_udc.c b/drivers/usb/gadget/udc/fsl_qe_udc.c > > index 7324308..dd18ea3 100644 > > --- a/drivers/usb/gadget/udc/fsl_qe_udc.c > > +++ b/drivers/usb/gadget/udc/fsl_qe_udc.c > > @@ -118,10 +118,7 @@ static void done(struct qe_ep *ep, struct qe_req *req, int status) > > ep->stopped = 1; > > spin_unlock(&udc->lock); > > > > - /* this complete() should a func implemented by gadget layer, > > - * eg fsg->bulk_in_complete() */ > > - if (req->req.complete) > > - req->req.complete(&ep->ep, &req->req); > > + usb_gadget_giveback_request(&ep->ep, &req->req); > > It looks like you have omitted if() statement. Are you sure that request > has set complete() callback?
complete is mandatory. If a request comes without a complete, it deserves to oops.
> Maybe it's worth to add this if inside usb_gadget_giveback_request() > function?
nope, we want those cases to oops so we catch the broken gadget driver.
-- balbi [unhandled content-type:application/pgp-signature] | |