Hi Sakari, Thank you for the patch. On Thu, May 25, 2023 at 12:15:50PM +0300, Sakari Ailus wrote: > The list entry is initialised as a head in v4l2_async_register_subdev() > just before being added to the list. This isn't needed, drop the > initialisation. Is this really unneeded ? Before the initialization and the list_add() call there are a few code paths that can access the async_list. For instance, the error path calls v4l2_async_cleanup(), which calls list_del_init(&sd->async_list); That won't work well on an uninitialized (or zero-initialized) list_head. > Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> > --- > drivers/media/v4l2-core/v4l2-async.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c > index 320fe5cbaaf41..aef9a16e892ef 100644 > --- a/drivers/media/v4l2-core/v4l2-async.c > +++ b/drivers/media/v4l2-core/v4l2-async.c > @@ -823,8 +823,6 @@ int v4l2_async_register_subdev(struct v4l2_subdev *sd) > > mutex_lock(&list_lock); > > - INIT_LIST_HEAD(&sd->async_list); > - > list_for_each_entry(notifier, ¬ifier_list, list) { > struct v4l2_device *v4l2_dev = > v4l2_async_nf_find_v4l2_dev(notifier); -- Regards, Laurent Pinchart