ath10k: snoc: fix unbalanced clock error handling
authorBrian Norris <briannorris@chromium.org>
Mon, 5 Nov 2018 12:35:22 +0000 (14:35 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 6 Nov 2018 16:17:16 +0000 (18:17 +0200)
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>
drivers/net/wireless/ath/ath10k/snoc.c

index 48292ed7d494dd83d9d3081c8949d12de7017bb6..81b86a787c34c82d0a93a0fac88ba8042743cb88 100644 (file)
@@ -1494,7 +1494,7 @@ static int ath10k_snoc_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)