On Fri May 9 18:24:14 2025 +0000, Ricardo Ribalda wrote: > Do uvc_pm_get before we call uvc_queue_streamon. Although the current > code is correct, uvc_ioctl_streamon is allways called after uvc_pm_get, > this change makes the code more resiliant to future changes. > > Suggested-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com> > Signed-off-by: Ricardo Ribalda <riba...@chromium.org> > Reviewed-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com> > Link: > https://lore.kernel.org/r/20250509-uvc-followup-v1-2-73bcde30d...@chromium.org > Signed-off-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com> > Signed-off-by: Hans Verkuil <hverk...@xs4all.nl>
Patch committed. Thanks, Hans Verkuil drivers/media/usb/uvc/uvc_v4l2.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) --- diff --git a/drivers/media/usb/uvc/uvc_v4l2.c b/drivers/media/usb/uvc/uvc_v4l2.c index 668a4e9d772c..862b4e34e5b6 100644 --- a/drivers/media/usb/uvc/uvc_v4l2.c +++ b/drivers/media/usb/uvc/uvc_v4l2.c @@ -853,15 +853,16 @@ static int uvc_ioctl_streamon(struct file *file, void *fh, if (handle->is_streaming) return 0; - ret = uvc_queue_streamon(&stream->queue, type); + ret = uvc_pm_get(stream->dev); if (ret) return ret; - ret = uvc_pm_get(stream->dev); + ret = uvc_queue_streamon(&stream->queue, type); if (ret) { - uvc_queue_streamoff(&stream->queue, type); + uvc_pm_put(stream->dev); return ret; } + handle->is_streaming = true; return 0;