Messages in this thread Patch in this message | | | From | Laurent Pinchart <> | Subject | [PATCH 2/2] media: v4l2-async: Safely unregister an non-registered async subdev | Date | Sat, 27 Feb 2021 00:49:38 +0200 |
| |
From: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Make the V4L2 async framework a bit more robust by allowing to unregister a non-registered async subdev. Otherwise the v4l2_async_cleanup() will attempt to delete the async subdev from the subdev_list with the corresponding list_head not initialized.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> --- drivers/media/v4l2-core/v4l2-async.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c index 37cc0263b273..2347b7ac54d4 100644 --- a/drivers/media/v4l2-core/v4l2-async.c +++ b/drivers/media/v4l2-core/v4l2-async.c @@ -750,6 +750,9 @@ EXPORT_SYMBOL(v4l2_async_register_subdev); void v4l2_async_unregister_subdev(struct v4l2_subdev *sd) { + if (list_is_null(&sd->async_list)) + return; + mutex_lock(&list_lock); __v4l2_async_notifier_unregister(sd->subdev_notifier); -- Regards, Laurent Pinchart
| |