From 8c0c7ed7ace877d74e6e7e78fcc87c3e59e9ee17 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Lothar=20Wa=C3=9Fmann?= Date: Tue, 26 Apr 2016 15:20:19 +0200 Subject: [PATCH] mx6: clock: fix integer overflow in calculation of relative error in set_nfc_clk() --- arch/arm/cpu/armv7/mx6/clock.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/cpu/armv7/mx6/clock.c b/arch/arm/cpu/armv7/mx6/clock.c index 80f39690f6..9e76adc808 100644 --- a/arch/arm/cpu/armv7/mx6/clock.c +++ b/arch/arm/cpu/armv7/mx6/clock.c @@ -677,7 +677,7 @@ static int set_nfc_clk(u32 ref, u32 freq_khz) podf = min(DIV_ROUND_UP(root_freq, freq), 1U << 6); pred = min(DIV_ROUND_UP(root_freq / podf, freq), 8U); act_freq = root_freq / pred / podf; - err = (freq - act_freq) * 100 / freq; + err = (freq - act_freq) / (freq / 1000); debug("root=%d[%u] freq=%u pred=%u podf=%u act=%u err=%d\n", nfc_clk_sel, root_freq, freq, pred, podf, act_freq, err); if (act_freq > freq) @@ -692,7 +692,7 @@ static int set_nfc_clk(u32 ref, u32 freq_khz) } } - if (nfc_val == ~0 || min_err > 10) + if (nfc_val == ~0 || min_err > 100) return -EINVAL; if ((cs2cdr & CS2CDR_ENFC_MASK) != nfc_val) { -- 2.39.2