Hi Michael, Thank you for the patch. On Thu, Sep 30, 2021 at 12:27:13PM +0200, Michael Grzeschik wrote: > The reason that the ep_queue has failed could be an disabled endpoint. s/an/a/ > In that case it is not guaranteed that the ep->desc is still valid. > This patch adds an check for NULL. s/an/a/ > Signed-off-by: Michael Grzeschik <m.grzeschik@xxxxxxxxxxxxxx> > --- > drivers/usb/gadget/function/uvc_video.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/drivers/usb/gadget/function/uvc_video.c b/drivers/usb/gadget/function/uvc_video.c > index da93b46df464d..cdfd3726a86ae 100644 > --- a/drivers/usb/gadget/function/uvc_video.c > +++ b/drivers/usb/gadget/function/uvc_video.c > @@ -199,9 +199,11 @@ static int uvcg_video_ep_queue(struct uvc_video *video, struct usb_request *req) > uvcg_err(&video->uvc->func, "Failed to queue request (%d).\n", > ret); > > - /* Isochronous endpoints can't be halted. */ > - if (usb_endpoint_xfer_bulk(video->ep->desc)) > - usb_ep_set_halt(video->ep); I'd add a comment here: /* If the endpoint is disabled the descriptor may be NULL. */ Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > + if (video->ep->desc) { > + /* Isochronous endpoints can't be halted. */ > + if (usb_endpoint_xfer_bulk(video->ep->desc)) > + usb_ep_set_halt(video->ep); > + } > } > > return ret; -- Regards, Laurent Pinchart