On Friday, November 26, 2010 21:41:02 Mauro Carvalho Chehab wrote:
> This is an automatic generated email to let you know that the following patch
> were queued at the
> http://git.linuxtv.org/media_tree.git tree:
>
> Subject: [media] [FOR, 2.6.37] Revert "V4L/DVB: v4l2-dev: remove unnecessary
> lock around atomic clear_bit"
> Author: Laurent Pinchart <[email protected]>
> Date: Mon Nov 22 07:21:27 2010 -0300
>
> Removing the mutex_lock/unlock around clear_bit allowed
> device_unregister() to race with v4l2_open(). The device can be
> unregistered between the video_devdata() and video_get() calls.
>
> Revert the patch to fix the problem.
>
> This reverts commit dd0daf2a6fb6bec436a3ef68bd585ea09a2a54b7.
>
> Signed-off-by: Laurent Pinchart <[email protected]>
> Acked-by: Hans Verkuil <[email protected]>
> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
Hmm, this shouldn't have been applied. The full fix for this race is in my
BKL removal tree for 2.6.37.
Regards,
Hans
>
> drivers/media/video/v4l2-dev.c | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
> ---
>
> http://git.linuxtv.org/media_tree.git?a=commitdiff;h=a287789447cecc7a82ffc4451cbaf16a5c1dccc0
>
> diff --git a/drivers/media/video/v4l2-dev.c b/drivers/media/video/v4l2-dev.c
> index 03f7f46..f777da6 100644
> --- a/drivers/media/video/v4l2-dev.c
> +++ b/drivers/media/video/v4l2-dev.c
> @@ -596,7 +596,9 @@ void video_unregister_device(struct video_device *vdev)
> if (!vdev || !video_is_registered(vdev))
> return;
>
> + mutex_lock(&videodev_lock);
> clear_bit(V4L2_FL_REGISTERED, &vdev->flags);
> + mutex_unlock(&videodev_lock);
> device_unregister(&vdev->dev);
> }
> EXPORT_SYMBOL(video_unregister_device);
>
--
Hans Verkuil - video4linux developer - sponsored by Cisco
_______________________________________________
linuxtv-commits mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits