Hi Laurent, On Tue, May 30, 2023 at 08:52:24AM +0300, Laurent Pinchart wrote: > Hi Sakari, > > Thank you for the patch. > > On Thu, May 25, 2023 at 12:15:58PM +0300, Sakari Ailus wrote: > > Add labels for error handling instead of doing it all in individual cases. > > Prepare for more functionality in this function. > > > > Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> > > --- > > drivers/media/v4l2-core/v4l2-async.c | 21 ++++++++++++--------- > > 1 file changed, 12 insertions(+), 9 deletions(-) > > > > diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c > > index b1025dfc27a92..f51f0c37210c9 100644 > > --- a/drivers/media/v4l2-core/v4l2-async.c > > +++ b/drivers/media/v4l2-core/v4l2-async.c > > @@ -320,10 +320,8 @@ static int v4l2_async_match_notify(struct v4l2_async_notifier *notifier, > > return ret; > > > > ret = v4l2_async_nf_call_bound(notifier, sd, asc); > > - if (ret < 0) { > > - v4l2_device_unregister_subdev(sd); > > - return ret; > > - } > > + if (ret < 0) > > + goto err_unregister_subdev; > > > > /* > > * Depending of the function of the entities involved, we may want to > > @@ -332,11 +330,8 @@ static int v4l2_async_match_notify(struct v4l2_async_notifier *notifier, > > * pad). > > */ > > ret = v4l2_async_create_ancillary_links(notifier, sd); > > - if (ret) { > > - v4l2_async_nf_call_unbind(notifier, sd, asc); > > - v4l2_device_unregister_subdev(sd); > > - return ret; > > - } > > + if (ret) > > + goto err_call_unbind; > > > > list_del(&asc->waiting_entry); > > sd->asd = asc; > > @@ -363,6 +358,14 @@ static int v4l2_async_match_notify(struct v4l2_async_notifier *notifier, > > subdev_notifier->parent = notifier; > > > > return v4l2_async_nf_try_all_subdevs(subdev_notifier); > > Unrelated to this patch, but shoulnd't this have error handling too ? You're absolutely right. Bad things will happen if this fails. :-( > > Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx> Thank you! > > > + > > +err_call_unbind: > > + v4l2_async_nf_call_unbind(notifier, sd, asc); > > + > > +err_unregister_subdev: > > + v4l2_device_unregister_subdev(sd); > > + > > + return ret; > > } > > > > /* Test all async sub-devices in a notifier for a match. */ -- Kind regards, Sakari Ailus