Message ID | 20220421143449.552312-2-tomi.valkeinen@ideasonboard.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | media: ti: cal: misc fixes | expand |
Hi Tomi, Thank you for the patch. On Thu, Apr 21, 2022 at 05:34:44PM +0300, Tomi Valkeinen wrote: > The error paths are not correct: media_entity_cleanup() should not be > called unless media_entity_pads_init() has been called. Fix this. See commit 443bf23d0048 ("media: media-entity: Clarify media_entity_cleanup() usage") :-) > Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> > --- > drivers/media/platform/ti/cal/cal-camerarx.c | 15 ++++++++------- > 1 file changed, 8 insertions(+), 7 deletions(-) > > diff --git a/drivers/media/platform/ti/cal/cal-camerarx.c b/drivers/media/platform/ti/cal/cal-camerarx.c > index 6b43a1525b45..a41941fa819a 100644 > --- a/drivers/media/platform/ti/cal/cal-camerarx.c > +++ b/drivers/media/platform/ti/cal/cal-camerarx.c > @@ -854,7 +854,7 @@ struct cal_camerarx *cal_camerarx_create(struct cal_dev *cal, > if (IS_ERR(phy->base)) { > cal_err(cal, "failed to ioremap\n"); > ret = PTR_ERR(phy->base); > - goto error; > + goto err_free_phy; > } > > cal_dbg(1, cal, "ioresource %s at %pa - %pa\n", > @@ -862,11 +862,11 @@ struct cal_camerarx *cal_camerarx_create(struct cal_dev *cal, > > ret = cal_camerarx_regmap_init(cal, phy); > if (ret) > - goto error; > + goto err_free_phy; > > ret = cal_camerarx_parse_dt(phy); > if (ret) > - goto error; > + goto err_free_phy; > > /* Initialize the V4L2 subdev and media entity. */ > sd = &phy->subdev; > @@ -883,20 +883,21 @@ struct cal_camerarx *cal_camerarx_create(struct cal_dev *cal, > ret = media_entity_pads_init(&sd->entity, ARRAY_SIZE(phy->pads), > phy->pads); > if (ret) > - goto error; > + goto err_free_phy; > > ret = cal_camerarx_sd_init_cfg(sd, NULL); > if (ret) > - goto error; > + goto err_entity_cleanup; > > ret = v4l2_device_register_subdev(&cal->v4l2_dev, sd); > if (ret) > - goto error; > + goto err_entity_cleanup; > > return phy; > > -error: > +err_entity_cleanup: > media_entity_cleanup(&phy->subdev.entity); > +err_free_phy: > kfree(phy); > return ERR_PTR(ret); > }
On 21/04/2022 23:01, Laurent Pinchart wrote: > Hi Tomi, > > Thank you for the patch. > > On Thu, Apr 21, 2022 at 05:34:44PM +0300, Tomi Valkeinen wrote: >> The error paths are not correct: media_entity_cleanup() should not be >> called unless media_entity_pads_init() has been called. Fix this. > > See commit 443bf23d0048 ("media: media-entity: Clarify > media_entity_cleanup() usage") :-) Ok, I'll drop this. Tomi
diff --git a/drivers/media/platform/ti/cal/cal-camerarx.c b/drivers/media/platform/ti/cal/cal-camerarx.c index 6b43a1525b45..a41941fa819a 100644 --- a/drivers/media/platform/ti/cal/cal-camerarx.c +++ b/drivers/media/platform/ti/cal/cal-camerarx.c @@ -854,7 +854,7 @@ struct cal_camerarx *cal_camerarx_create(struct cal_dev *cal, if (IS_ERR(phy->base)) { cal_err(cal, "failed to ioremap\n"); ret = PTR_ERR(phy->base); - goto error; + goto err_free_phy; } cal_dbg(1, cal, "ioresource %s at %pa - %pa\n", @@ -862,11 +862,11 @@ struct cal_camerarx *cal_camerarx_create(struct cal_dev *cal, ret = cal_camerarx_regmap_init(cal, phy); if (ret) - goto error; + goto err_free_phy; ret = cal_camerarx_parse_dt(phy); if (ret) - goto error; + goto err_free_phy; /* Initialize the V4L2 subdev and media entity. */ sd = &phy->subdev; @@ -883,20 +883,21 @@ struct cal_camerarx *cal_camerarx_create(struct cal_dev *cal, ret = media_entity_pads_init(&sd->entity, ARRAY_SIZE(phy->pads), phy->pads); if (ret) - goto error; + goto err_free_phy; ret = cal_camerarx_sd_init_cfg(sd, NULL); if (ret) - goto error; + goto err_entity_cleanup; ret = v4l2_device_register_subdev(&cal->v4l2_dev, sd); if (ret) - goto error; + goto err_entity_cleanup; return phy; -error: +err_entity_cleanup: media_entity_cleanup(&phy->subdev.entity); +err_free_phy: kfree(phy); return ERR_PTR(ret); }
The error paths are not correct: media_entity_cleanup() should not be called unless media_entity_pads_init() has been called. Fix this. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> --- drivers/media/platform/ti/cal/cal-camerarx.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-)