Re: [PATCH v4 0/4] uvcvideo: Attempt N to land UVC race conditions fixes

From: Sergey Senozhatsky
Date: Wed Mar 27 2024 - 07:05:08 EST


On (24/03/27 08:24), Ricardo Ribalda wrote:
> Back in 2020 Guenter published a set of patches to fix some race
> conditions in UVC:
> https://lore.kernel.org/all/20200917022547.198090-5-linux@xxxxxxxxxxxx/
>
> That kind of race conditions are not only seen in UVC, but are a common
> seen in almost all the kernel, so this is what it was decided back then
> that we should try to fix them at higher levels.
>
> After that. A lot of video_is_registered() were added to the core:
>
> ```
> ribalda@alco:~/work/linux$ git grep is_registered drivers/media/v4l2-core/
> drivers/media/v4l2-core/v4l2-compat-ioctl32.c: if (!video_is_registered(vdev))
> drivers/media/v4l2-core/v4l2-dev.c: if (video_is_registered(vdev))
> drivers/media/v4l2-core/v4l2-dev.c: if (video_is_registered(vdev))
> drivers/media/v4l2-core/v4l2-dev.c: if (video_is_registered(vdev)) {
> drivers/media/v4l2-core/v4l2-dev.c: if (video_is_registered(vdev))
> drivers/media/v4l2-core/v4l2-dev.c: if (!video_is_registered(vdev))
> drivers/media/v4l2-core/v4l2-dev.c: if (video_is_registered(vdev))
> drivers/media/v4l2-core/v4l2-dev.c: if (vdev == NULL || !video_is_registered(vdev)) {
> drivers/media/v4l2-core/v4l2-dev.c: if (video_is_registered(vdev))
> drivers/media/v4l2-core/v4l2-dev.c: if (!vdev || !video_is_registered(vdev))
> drivers/media/v4l2-core/v4l2-ioctl.c: if (!video_is_registered(vfd)) {
> drivers/media/v4l2-core/v4l2-subdev.c: if (video_is_registered(vdev)) {
> ```
>
> And recently Sakari is trying to land:
> https://lore.kernel.org/linux-media/20230201214535.347075-1-sakari.ailus@xxxxxxxxxxxxxxx/
>
> Which will make obsolete a lot off (all?) of the video_is_registered() checks in
> Guenter's patches.
>
> Besides those checks, there were some other valid races fixed in his
> patches.
>
> This patchset tries to fix the races still present in our code.
>
> Thanks!
>
> Signed-off-by: Ricardo Ribalda <ribalda@xxxxxxxxxxxx>

Reviewed-by: Sergey Senozhatsky <senozhatsky@xxxxxxxxxxxx>