[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20241127091153.GA31095@pendragon.ideasonboard.com>
Date: Wed, 27 Nov 2024 11:11:53 +0200
From: Laurent Pinchart <laurent.pinchart@...asonboard.com>
To: Ricardo Ribalda <ribalda@...omium.org>
Cc: Hans de Goede <hdegoede@...hat.com>,
Mauro Carvalho Chehab <mchehab@...nel.org>,
Guennadi Liakhovetski <guennadi.liakhovetski@...el.com>,
Mauro Carvalho Chehab <mchehab+samsung@...nel.org>,
linux-media@...r.kernel.org, linux-kernel@...r.kernel.org,
stable@...r.kernel.org
Subject: Re: [PATCH 1/2] media: uvcvideo: Do not set an async control owned
by other fh
Hi Ricardo,
Thank you for the patch.
On Wed, Nov 27, 2024 at 07:46:10AM +0000, Ricardo Ribalda wrote:
> If a file handle is waiting for a response from an async control, avoid
> that other file handle operate with it.
>
> Without this patch, the first file handle will never get the event
> associated to that operation.
Please explain why that is an issue (both for the commit message and for
me, as I'm not sure what you're fixing here).
What may be an issue is that ctrl->handle seem to be accessed from
different contexts without proper locking :-S
> Cc: stable@...r.kernel.org
> Fixes: e5225c820c05 ("media: uvcvideo: Send a control event when a Control Change interrupt arrives")
> Signed-off-by: Ricardo Ribalda <ribalda@...omium.org>
> ---
> drivers/media/usb/uvc/uvc_ctrl.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/media/usb/uvc/uvc_ctrl.c b/drivers/media/usb/uvc/uvc_ctrl.c
> index 4fe26e82e3d1..5d3a28edf7f0 100644
> --- a/drivers/media/usb/uvc/uvc_ctrl.c
> +++ b/drivers/media/usb/uvc/uvc_ctrl.c
> @@ -1950,6 +1950,10 @@ int uvc_ctrl_set(struct uvc_fh *handle,
> if (!(ctrl->info.flags & UVC_CTRL_FLAG_SET_CUR))
> return -EACCES;
>
> + /* Other file handle is waiting a response from this async control. */
> + if (ctrl->handle && ctrl->handle != handle)
> + return -EBUSY;
> +
> /* Clamp out of range values. */
> switch (mapping->v4l2_type) {
> case V4L2_CTRL_TYPE_INTEGER:
--
Regards,
Laurent Pinchart
Powered by blists - more mailing lists