From 8f7112630bd0c7f43ae4fba9f054c74c1fba650a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= Date: Fri, 9 Jul 2021 16:25:51 +0200 Subject: [PATCH] media: rcar-vin: Fix error paths for rvin_mc_init() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The error paths of rvin_mc_init() do not clean up properly, fix this. Signed-off-by: Niklas Söderlund Reviewed-by: Jacopo Mondi Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab --- drivers/media/platform/rcar-vin/rcar-core.c | 22 +++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/drivers/media/platform/rcar-vin/rcar-core.c b/drivers/media/platform/rcar-vin/rcar-core.c index 6ea561fcd7a3..bea388075216 100644 --- a/drivers/media/platform/rcar-vin/rcar-core.c +++ b/drivers/media/platform/rcar-vin/rcar-core.c @@ -946,18 +946,24 @@ static int rvin_mc_init(struct rvin_dev *vin) if (ret) return ret; - ret = rvin_group_get(vin); - if (ret) - return ret; - - ret = rvin_mc_parse_of_graph(vin); - if (ret) - rvin_group_put(vin); - ret = rvin_create_controls(vin, NULL); if (ret < 0) return ret; + ret = rvin_group_get(vin); + if (ret) + goto err_controls; + + ret = rvin_mc_parse_of_graph(vin); + if (ret) + goto err_group; + + return 0; +err_group: + rvin_group_put(vin); +err_controls: + rvin_free_controls(vin); + return ret; }