cpufreq: intel_pstate: Fix unchecked MSR 0x773 access
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Thu, 4 Nov 2021 05:19:25 +0000 (22:19 -0700)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 4 Nov 2021 18:48:47 +0000 (19:48 +0100)
It is possible that on some platforms HWP interrupts are disabled. In
that case accessing MSR 0x773 will result in warning.

So check X86_FEATURE_HWP_NOTIFY feature to access MSR 0x773. The other
places in code where this MSR is accessed, already checks this feature
except during disable path called during cpufreq offline and suspend
callbacks.

Fixes: 57577c996d73 ("cpufreq: intel_pstate: Process HWP Guaranteed change notification")
Reported-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Tested-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpufreq/intel_pstate.c

index 8896a44ec7b0e6b8092f274ed7a0775acb39f7f1..2bb847650b9dfe3640378cb960a4578dc933fc1b 100644 (file)
@@ -1627,6 +1627,9 @@ static void intel_pstate_disable_hwp_interrupt(struct cpudata *cpudata)
 {
        unsigned long flags;
 
+       if (!boot_cpu_has(X86_FEATURE_HWP_NOTIFY))
+               return;
+
        /* wrmsrl_on_cpu has to be outside spinlock as this can result in IPC */
        wrmsrl_on_cpu(cpudata->cpu, MSR_HWP_INTERRUPT, 0x00);