[02/11] rcar-vin: Fix error paths for rvin_mc_init()
Commit Message
The error paths of rvin_mc_init() do not clean up properly, fix this.
Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
---
drivers/media/platform/rcar-vin/rcar-core.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
Comments
Hi Niklas,
On Tue, Apr 13, 2021 at 08:02:44PM +0200, Niklas Söderlund wrote:
> The error paths of rvin_mc_init() do not clean up properly, fix this.
>
> Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
> ---
> drivers/media/platform/rcar-vin/rcar-core.c | 16 +++++++++++-----
> 1 file changed, 11 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/media/platform/rcar-vin/rcar-core.c b/drivers/media/platform/rcar-vin/rcar-core.c
> index c798dc9409e4cdcd..d4932f7b42647ee1 100644
> --- a/drivers/media/platform/rcar-vin/rcar-core.c
> +++ b/drivers/media/platform/rcar-vin/rcar-core.c
> @@ -946,17 +946,23 @@ static int rvin_mc_init(struct rvin_dev *vin)
> if (ret)
> return ret;
>
> + ret = rvin_create_controls(vin, NULL);
> + if (ret < 0)
> + return ret;
> +
> ret = rvin_group_get(vin);
> if (ret)
> - return ret;
> + goto err_controls;
>
> ret = rvin_mc_parse_of_graph(vin);
> if (ret)
> - rvin_group_put(vin);
> + goto err_group;
>
> - ret = rvin_create_controls(vin, NULL);
> - if (ret < 0)
> - return ret;
> + return 0;
Empty line maybe ?
Reviewed-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
Thanks
j
> +err_group:
> + rvin_group_put(vin);
> +err_controls:
> + rvin_free_controls(vin);
>
> return ret;
> }
> --
> 2.31.1
>
@@ -946,17 +946,23 @@ static int rvin_mc_init(struct rvin_dev *vin)
if (ret)
return ret;
+ ret = rvin_create_controls(vin, NULL);
+ if (ret < 0)
+ return ret;
+
ret = rvin_group_get(vin);
if (ret)
- return ret;
+ goto err_controls;
ret = rvin_mc_parse_of_graph(vin);
if (ret)
- rvin_group_put(vin);
+ goto err_group;
- ret = rvin_create_controls(vin, NULL);
- if (ret < 0)
- return ret;
+ return 0;
+err_group:
+ rvin_group_put(vin);
+err_controls:
+ rvin_free_controls(vin);
return ret;
}