This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: v4l: async: Set owner for async sub-devices
Author:  Sakari Ailus <sakari.ai...@linux.intel.com>
Date:    Wed Mar 13 13:57:50 2024 +0000

Set the owner field of the async sub-devices by making
v4l2_async_register_subdev() a macro and obtaining THIS_MODULE that way.

Signed-off-by: Sakari Ailus <sakari.ai...@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mche...@kernel.org>

 drivers/media/v4l2-core/v4l2-async.c | 8 ++++++--
 include/media/v4l2-async.h           | 4 +++-
 2 files changed, 9 insertions(+), 3 deletions(-)

---

diff --git a/drivers/media/v4l2-core/v4l2-async.c 
b/drivers/media/v4l2-core/v4l2-async.c
index b28f6811a5f4..3a22da443a22 100644
--- a/drivers/media/v4l2-core/v4l2-async.c
+++ b/drivers/media/v4l2-core/v4l2-async.c
@@ -783,7 +783,7 @@ v4l2_async_connection_unique(struct v4l2_subdev *sd)
 }
 EXPORT_SYMBOL_GPL(v4l2_async_connection_unique);
 
-int v4l2_async_register_subdev(struct v4l2_subdev *sd)
+int __v4l2_async_register_subdev(struct v4l2_subdev *sd, struct module *module)
 {
        struct v4l2_async_notifier *subdev_notifier;
        struct v4l2_async_notifier *notifier;
@@ -807,6 +807,8 @@ int v4l2_async_register_subdev(struct v4l2_subdev *sd)
                return -EINVAL;
        }
 
+       sd->owner = module;
+
        mutex_lock(&list_lock);
 
        list_for_each_entry(notifier, &notifier_list, notifier_entry) {
@@ -849,9 +851,11 @@ err_unbind:
 
        mutex_unlock(&list_lock);
 
+       sd->owner = NULL;
+
        return ret;
 }
-EXPORT_SYMBOL(v4l2_async_register_subdev);
+EXPORT_SYMBOL(__v4l2_async_register_subdev);
 
 void v4l2_async_unregister_subdev(struct v4l2_subdev *sd)
 {
diff --git a/include/media/v4l2-async.h b/include/media/v4l2-async.h
index 9bd326d31181..f26c323e9c96 100644
--- a/include/media/v4l2-async.h
+++ b/include/media/v4l2-async.h
@@ -310,7 +310,9 @@ void v4l2_async_nf_cleanup(struct v4l2_async_notifier 
*notifier);
  *
  * @sd: pointer to &struct v4l2_subdev
  */
-int v4l2_async_register_subdev(struct v4l2_subdev *sd);
+#define v4l2_async_register_subdev(sd) \
+       __v4l2_async_register_subdev(sd, THIS_MODULE)
+int __v4l2_async_register_subdev(struct v4l2_subdev *sd, struct module 
*module);
 
 /**
  * v4l2_async_register_subdev_sensor - registers a sensor sub-device to the

Reply via email to