Re: [PATCH 2/3] cpufreq: ppc: Fix integer overflow in expression

From
Viresh Kumar <viresh.kumar@linaro.org>
Date
2014-04-21 05:52:48
Also in
linux-pm, lkml
Reply to
Geert Uytterhoeven, 2014-04-17
On 17 April 2014 15:23, Geert Uytterhoeven [off-list ref] wrote:
quoted hunk ↗ jump to hunk
On 32-bit, "12 * NSEC_PER_SEC" doesn't fit in "unsigned long"
(NSEC_PER_SEC is a "long" constant), causing an integer overflow:

drivers/cpufreq/ppc-corenet-cpufreq.c: In function 'corenet_cpufreq_cpu_init':
drivers/cpufreq/ppc-corenet-cpufreq.c:211:9: warning: integer overflow in expression [-Woverflow]

Force the intermediate to be 64-bit by adding an "ULL" suffix to the
constant multiplier to fix this.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
 drivers/cpufreq/ppc-corenet-cpufreq.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/cpufreq/ppc-corenet-cpufreq.c b/drivers/cpufreq/ppc-corenet-cpufreq.c
index e78f9c806de4..53881d78a931 100644
--- a/drivers/cpufreq/ppc-corenet-cpufreq.c
+++ b/drivers/cpufreq/ppc-corenet-cpufreq.c
@@ -208,7 +208,7 @@ static int corenet_cpufreq_cpu_init(struct cpufreq_policy *policy)
                per_cpu(cpu_data, i) = data;

        policy->cpuinfo.transition_latency =
-                               (12 * NSEC_PER_SEC) / fsl_get_sys_freq();
+                               (12ULL * NSEC_PER_SEC) / fsl_get_sys_freq();
        of_node_put(np);

        return 0;
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Thread (7 messages) 7 messages, 3 authors, 2014-04-21
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help