Files
Centos-kernel-stream-10/include/media
Kate Hsuan 880268c1b4 media: v4l2-fwnode: Fix subdev owner overwritten in v4l2_async_register_subdev_sensor()
JIRA: https://redhat.atlassian.net/browse/RHEL-162129

commit 06cb687a5132fcffe624c0070576ab852ac6b568
Author: Mirela Rabulea <mirela.rabulea@nxp.com>
Date: Fri, 22 May 2026 17:31:20 +0300

  The v4l2 helper v4l2_async_register_subdev_sensor() calls
  v4l2_async_register_subdev(), which is a macro that expands to
  __v4l2_async_register_subdev(sd,THIS_MODULE). Since the macro is expanded
  inside v4l2-fwnode.c, THIS_MODULE resolves to the v4l2-fwnode module
  rather than the sensor driver module that originally set sd->owner. When
  v4l2-fwnode is built-in, THIS_MODULE evaluates to NULL, which then
  overwrites the sensor driver's owner with NULL.

  This causes the problem that the sensor module's reference count is never
  incremented during async registration, so the module can be removed while
  the subdevice is still in use by a notifier (e.g., a CSI-2 receiver
  bridge driver).

  Fix this by renaming v4l2_async_register_subdev_sensor() to
  __v4l2_async_register_subdev_sensor() with an added explicit module
  argument and introducing a wrapper macro:
      #define v4l2_async_register_subdev_sensor(sd) \
          __v4l2_async_register_subdev_sensor(sd, THIS_MODULE)

  This ensures the sensor driver module is properly referenced even when
  the sensor driver does not init the owner field before calling
  v4l2_async_register_subdev_sensor() and prevents premature module removal.

  Fixes: aef69d5475 ("media: v4l: fwnode: Add a convenience function for registering sensors")
  Cc: stable@vger.kernel.org
  Suggested-by: Frank Li <Frank.Li@nxp.com>
  Link: https://lore.kernel.org/linux-media/20240315073125.275501-2-sakari.ailus@linux.intel.com/
  Signed-off-by: Mirela Rabulea <mirela.rabulea@nxp.com>
  Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
  Reviewed-by: Frank Li <Frank.Li@nxp.com>
  Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>

Signed-off-by: Kate Hsuan <hpa@redhat.com>
2026-08-07 16:13:40 +08:00
..
2023-04-15 08:53:31 +01:00