cpuidle: Avoid potential overflow in integer multiplication
[sfrench/cifs-2.6.git] / drivers / cpuidle / driver.c
index d9cda7f6ccb98dfad6826661def5756b2e068150..cf5873cc45dc8c8f3b9c97d4d91d61101f36f889 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/cpumask.h>
 #include <linux/tick.h>
 #include <linux/cpu.h>
+#include <linux/math64.h>
 
 #include "cpuidle.h"
 
@@ -187,7 +188,7 @@ static void __cpuidle_driver_init(struct cpuidle_driver *drv)
                        s->target_residency = div_u64(s->target_residency_ns, NSEC_PER_USEC);
 
                if (s->exit_latency > 0)
-                       s->exit_latency_ns = s->exit_latency * NSEC_PER_USEC;
+                       s->exit_latency_ns = mul_u32_u32(s->exit_latency, NSEC_PER_USEC);
                else if (s->exit_latency_ns < 0)
                        s->exit_latency_ns =  0;
                else