summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2016-02-10 09:25:17 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2016-02-11 15:12:33 +0100
commite972c37459c813190461dabfeaac228e00aae259 (patch)
tree1a0f5c29365850ca1ce2254806a803fa701b31db /arch
parentARM: 8517/1: ICST: avoid arithmetic overflow in icst_hz() (diff)
downloadlinux-e972c37459c813190461dabfeaac228e00aae259.tar.xz
linux-e972c37459c813190461dabfeaac228e00aae259.zip
ARM: 8519/1: ICST: try other dividends than 1
Since the dawn of time the ICST code has only supported divide by one or hang in an eternal loop. Luckily we were always dividing by one because the reference frequency for the systems using the ICSTs is 24MHz and the [min,max] values for the PLL input if [10,320] MHz for ICST307 and [6,200] for ICST525, so the loop will always terminate immediately without assigning any divisor for the reference frequency. But for the code to make sense, let's insert the missing i++ Reported-by: David Binderman <dcb314@hotmail.com> Cc: stable@vger.kernel.org Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/common/icst.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arm/common/icst.c b/arch/arm/common/icst.c
index d3c0e69df259..d7ed252708c5 100644
--- a/arch/arm/common/icst.c
+++ b/arch/arm/common/icst.c
@@ -62,6 +62,7 @@ icst_hz_to_vco(const struct icst_params *p, unsigned long freq)
if (f > p->vco_min && f <= p->vco_max)
break;
+ i++;
} while (i < 8);
if (i >= 8)