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>
Thu, 18 Nov 2021 18:16:51 +0000 (19:16 +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 50091c4..a60e142 100644 (file)
@@ -782,7 +782,7 @@ static int tegra_powergate_power_up(struct tegra_powergate *pg,
 
        err = reset_control_deassert(pg->reset);
        if (err)
-               goto powergate_off;
+               goto disable_clks;
 
        usleep_range(10, 20);