mirror of
https://github.com/torvalds/linux.git
synced 2026-06-07 05:55:44 +02:00
UPSTREAM: usb: gadget: uvc: test if ep->desc is valid on ep_queue
The reason that the ep_queue has failed could be a disabled endpoint.
In that case it is not guaranteed that the ep->desc is still valid.
This patch adds a check for NULL.
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Link: https://lore.kernel.org/r/20211017215017.18392-4-m.grzeschik@pengutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Bug: 229140375
(cherry picked from commit 38db3716a5)
Signed-off-by: Dan Vacura <w36195@motorola.com>
Change-Id: I8a17f64088832947e3a4481140d884881bf603ff
This commit is contained in:
parent
23cca7ad30
commit
53129aceec
|
|
@ -134,10 +134,13 @@ 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",
|
uvcg_err(&video->uvc->func, "Failed to queue request (%d).\n",
|
||||||
ret);
|
ret);
|
||||||
|
|
||||||
|
/* If the endpoint is disabled the descriptor may be NULL. */
|
||||||
|
if (video->ep->desc) {
|
||||||
/* Isochronous endpoints can't be halted. */
|
/* Isochronous endpoints can't be halted. */
|
||||||
if (usb_endpoint_xfer_bulk(video->ep->desc))
|
if (usb_endpoint_xfer_bulk(video->ep->desc))
|
||||||
usb_ep_set_halt(video->ep);
|
usb_ep_set_halt(video->ep);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user