soc/tegra: Fix an error handling path in tegra_powergate_power_up()
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sun, 27 Jun 2021 15:54:31 +0000 (17:54 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 26 Nov 2021 10:40:33 +0000 (11:40 +0100)
[ Upstream commit 986b5094708e508baa452a23ffe809870934a7df ]

If an error occurs after a successful tegra_powergate_enable_clocks()
call, it must be undone by a tegra_powergate_disable_clocks() call, as
already done in the below and above error handling paths of this function.

Update the 'goto' to branch at the correct place of the error handling
path.

Fixes: a38045121bf4 ("soc/tegra: pmc: Add generic PM domain support")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/soc/tegra/pmc.c

index 2422ed56895afca583a82e94b92be38a4f5d15c5..71f4ff3e13b467ca9d379522534ecb59fff7808d 100644 (file)
@@ -407,7 +407,7 @@ static int tegra_powergate_power_up(struct tegra_powergate *pg,
 
        err = tegra_powergate_reset_deassert(pg);
        if (err)
-               goto powergate_off;
+               goto disable_clks;
 
        usleep_range(10, 20);