intel_idle: correct BXT support
authorJan Beulich <JBeulich@suse.com>
Mon, 27 Jun 2016 06:35:48 +0000 (00:35 -0600)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 8 Jul 2016 23:05:30 +0000 (01:05 +0200)
Commit 5dcef69486 ("intel_idle: add BXT support") added an 8-element
lookup array with just a 2-bit value used for lookups. As per the SDM
that bit field is really 3 bits wide. While this is supposedly benign
here, future re-use of the code for other CPUs might expose the issue.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/idle/intel_idle.c

index 5300f25..9b2ef24 100644 (file)
@@ -1190,7 +1190,7 @@ static unsigned long long irtl_2_usec(unsigned long long irtl)
        if (!irtl)
                return 0;
 
-       ns = irtl_ns_units[(irtl >> 10) & 0x3];
+       ns = irtl_ns_units[(irtl >> 10) & 0x7];
 
        return div64_u64((irtl & 0x3FF) * ns, 1000);
 }