From ae81c98aaf28fc62efbd506f9318cfd67678a826 Mon Sep 17 00:00:00 2001 From: Pawel Dziepak Date: Tue, 21 Jan 2014 04:18:20 +0100 Subject: [PATCH] intel_cstates: Fix integer division inaccuracy Integer division could have result in an out of bound substate. --- .../kernel/power/cpuidle/intel_cstates/intel_cstates.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/power/cpuidle/intel_cstates/intel_cstates.cpp b/src/add-ons/kernel/power/cpuidle/intel_cstates/intel_cstates.cpp index 9827c916fd..aab5ed4d10 100644 --- a/src/add-ons/kernel/power/cpuidle/intel_cstates/intel_cstates.cpp +++ b/src/add-ons/kernel/power/cpuidle/intel_cstates/intel_cstates.cpp @@ -83,7 +83,8 @@ cstates_idle(void) ASSERT(state >= 0 && state < sCStateCount); int subState = idleTime % timeStep; - subState /= timeStep / sCStates[state].fSubStatesCount; + subState *= sCStates[state].fSubStatesCount; + subState /= timeStep; ASSERT(subState >= 0 && subState < sCStates[state].fSubStatesCount);