linux/drivers/media/v4l2-core
Hans Verkuil 1ed4477f2e media: v4l2-core: hold videodev_lock until dev reg, finishes
After the new V4L2 device node was registered, some additional
initialization was done before the device node was marked as
'registered'. During the time between creating the device node
and marking it as 'registered' it was possible to open the
device node, which would return -ENODEV since the 'registered'
flag was not yet set.

Hold the videodev_lock mutex from just before the device node
is registered until the 'registered' flag is set. Since v4l2_open
will take the same lock, it will wait until this registration
process is finished. This resolves this race condition.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: <stable@vger.kernel.org>      # for vi4.18 and up
2024-04-24 13:49:55 +02:00
..
Kconfig media: remove the old videobuf framework 2023-09-27 09:40:01 +02:00
Makefile media: remove the old videobuf framework 2023-09-27 09:40:01 +02:00
tuner-core.c media: Switch i2c drivers back to use .probe() 2023-05-25 16:21:21 +02:00
v4l2-async.c media: v4l: async: Properly re-initialise notifier entry in unregister 2024-04-10 15:15:30 +02:00
v4l2-cci.c media: v4l2: cci: print leading 0 on error 2024-02-01 13:35:34 +01:00
v4l2-common.c media: v4l2-common: Add Y210 and Y216 format info 2024-04-08 13:48:19 +02:00
v4l2-compat-ioctl32.c media: core: Report the maximum possible number of buffers for the queue 2023-11-23 12:38:05 +01:00
v4l2-ctrls-api.c media: v4l2-ctrls-core.c: Do not use iterator outside loop 2024-04-15 13:42:39 +02:00
v4l2-ctrls-core.c media: v4l2-ctrls: Return handler error in creating new fwnode properties 2024-04-22 11:41:04 +02:00
v4l2-ctrls-defs.c media: Add AV1 uAPI 2023-06-09 16:13:01 +01:00
v4l2-ctrls-priv.h media: v4l2-ctrls: add support for dynamically allocated arrays. 2022-07-15 16:20:53 +01:00
v4l2-ctrls-request.c media: v4l2-ctrls: add support for dynamically allocated arrays. 2022-07-15 16:20:53 +01:00
v4l2-dev.c media: v4l2-core: hold videodev_lock until dev reg, finishes 2024-04-24 13:49:55 +02:00
v4l2-device.c media: v4l: subdev: Set sd->devnode before registering the subdev 2020-12-02 15:55:44 +01:00
v4l2-dv-timings.c media: v4l2-dv-timings.c: fix too strict blanking sanity checks 2022-11-23 12:02:30 +00:00
v4l2-event.c media: v4l2-event: Annotate struct v4l2_subscribed_event with __counted_by 2023-10-07 10:55:45 +02:00
v4l2-fh.c media: v4l2-core: Avoid the dangling pointer in v4l2_fh_release 2021-06-02 13:17:44 +02:00
v4l2-flash-led-class.c media: v4l2-flash: Fix comment typo 2022-08-29 15:32:14 +02:00
v4l2-fwnode.c media: v4l: fwnode: Parse MIPI DisCo for Imaging properties 2023-12-04 10:37:47 +01:00
v4l2-h264.c media: drivers/media/v4l2-core/v4l2-h264 : add detection of null pointers 2023-02-08 07:33:41 +01:00
v4l2-i2c.c
v4l2-ioctl.c media: v4l2: Add REMOVE_BUFS ioctl 2024-03-25 12:00:44 +01:00
v4l2-jpeg.c media: v4l2-jpeg: ignore the unknown APP14 marker 2023-02-08 07:25:40 +01:00
v4l2-mc.c media: v4l2-mc: Add debug prints for v4l2_fwnode_create_links_for_pad() 2024-01-22 17:23:59 +01:00
v4l2-mem2mem.c media: v4l2: Add mem2mem helpers for REMOVE_BUFS ioctl 2024-03-25 12:00:44 +01:00
v4l2-spi.c media: v4l2-subdev: Follow renaming of SPI "master" to "controller" 2024-02-08 11:54:42 +00:00
v4l2-subdev-priv.h media: v4l2-core: Make the v4l2-core code enable/disable the privacy LED if present 2023-02-03 10:22:34 +01:00
v4l2-subdev.c media: v4l: Don't turn on privacy LED if streamon fails 2024-04-22 11:41:04 +02:00
v4l2-trace.c
v4l2-vp9.c media: Add VP9 v4l2 library 2021-11-22 07:47:13 +00:00