]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ath10k: snoc: fix unbalanced clock error handling
authorBrian Norris <briannorris@chromium.org>
Mon, 5 Nov 2018 12:35:22 +0000 (14:35 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 1 Dec 2019 08:17:20 +0000 (09:17 +0100)
[ Upstream commit 82e60d920e8ad70cd9a280ab156566755f1fe4aa ]

Similar to regulator error handling, we should only start tearing down
the 'i - 1' clock when clock 'i' fails to enable. Otherwise, we might
end up with an unbalanced clock, where we never successfully enabled the
clock, but we try to disable it anyway.

Fixes: a6a793f98786 ("ath10k: vote for hardware resources for WCN3990")
Signed-off-by: Brian Norris <briannorris@chromium.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/ath/ath10k/snoc.c

index fa1843a7e0fdaaec3e74a96d9a8b359a921c9746..e2d78f77edb70cc681e83418228e5eb7bd1619be 100644 (file)
@@ -1190,7 +1190,7 @@ static int ath10k_wcn3990_clk_init(struct ath10k *ar)
        return 0;
 
 err_clock_config:
-       for (; i >= 0; i--) {
+       for (i = i - 1; i >= 0; i--) {
                clk_info = &ar_snoc->clk[i];
 
                if (!clk_info->handle)