Hi Tomi, Thank you for the patch. On Mon, Jun 14, 2021 at 02:23:31PM +0300, Tomi Valkeinen wrote: > cal_async_notifier_complete() doesn't handle errors returned from > cal_ctx_v4l2_register(). Add the error handling. > > Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxxxxxxxxxxxx> Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > --- > drivers/media/platform/ti-vpe/cal.c | 28 +++++++++++++++++++++++----- > 1 file changed, 23 insertions(+), 5 deletions(-) > > diff --git a/drivers/media/platform/ti-vpe/cal.c b/drivers/media/platform/ti-vpe/cal.c > index 2d05fb3993d8..3a836813eda8 100644 > --- a/drivers/media/platform/ti-vpe/cal.c > +++ b/drivers/media/platform/ti-vpe/cal.c > @@ -740,15 +740,33 @@ static int cal_async_notifier_complete(struct v4l2_async_notifier *notifier) > { > struct cal_dev *cal = container_of(notifier, struct cal_dev, notifier); > unsigned int i; > - int ret = 0; > + int ret; > > for (i = 0; i < ARRAY_SIZE(cal->ctx); ++i) { > - if (cal->ctx[i]) > - cal_ctx_v4l2_register(cal->ctx[i]); > + if (!cal->ctx[i]) > + continue; > + > + ret = cal_ctx_v4l2_register(cal->ctx[i]); > + if (ret) > + goto err_ctx_unreg; > } > > - if (cal_mc_api) > - ret = v4l2_device_register_subdev_nodes(&cal->v4l2_dev); > + if (!cal_mc_api) > + return 0; > + > + ret = v4l2_device_register_subdev_nodes(&cal->v4l2_dev); > + if (ret) > + goto err_ctx_unreg; > + > + return 0; > + > +err_ctx_unreg: > + for (; i > 0; --i) { > + if (!cal->ctx[i - 1]) > + continue; > + > + cal_ctx_v4l2_unregister(cal->ctx[i - 1]); > + } > > return ret; > } -- Regards, Laurent Pinchart