|
@@ -577,9 +577,12 @@ static inline void intel_pstate_calc_busy(struct cpudata *cpu)
|
|
static inline void intel_pstate_sample(struct cpudata *cpu)
|
|
static inline void intel_pstate_sample(struct cpudata *cpu)
|
|
{
|
|
{
|
|
u64 aperf, mperf;
|
|
u64 aperf, mperf;
|
|
|
|
+ unsigned long flags;
|
|
|
|
|
|
|
|
+ local_irq_save(flags);
|
|
rdmsrl(MSR_IA32_APERF, aperf);
|
|
rdmsrl(MSR_IA32_APERF, aperf);
|
|
rdmsrl(MSR_IA32_MPERF, mperf);
|
|
rdmsrl(MSR_IA32_MPERF, mperf);
|
|
|
|
+ local_irq_restore(flags);
|
|
|
|
|
|
aperf = aperf >> FRAC_BITS;
|
|
aperf = aperf >> FRAC_BITS;
|
|
mperf = mperf >> FRAC_BITS;
|
|
mperf = mperf >> FRAC_BITS;
|