cpufreq/intel_pstate: Add function to check that all MSR's are valid (rhbz 922923)
This commit is contained in:
parent
31befe51b6
commit
6f9fa1acc9
56
cpufreq-intel-pstate-validate-msrs.patch
Normal file
56
cpufreq-intel-pstate-validate-msrs.patch
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
commit 866111646f2c5d4c6c25e2bb97f5c61c3992defb
|
||||||
|
Author: Dirk Brandewie <dirk.brandewie@gmail.com>
|
||||||
|
Date: Mon Mar 18 16:55:02 2013 -0700
|
||||||
|
|
||||||
|
cpufreq/intel_pstate: Add function to check that all MSR's are valid
|
||||||
|
|
||||||
|
Some VMs seem to try to implement some MSRs but not all the registers
|
||||||
|
the driver needs. Check to make sure all the MSR that we need are
|
||||||
|
available. If any of the required MSRs are not available refuse to
|
||||||
|
load.
|
||||||
|
|
||||||
|
Signed-off-by: Dirk Brandewie <dirk.brandewie@gmail.com>
|
||||||
|
|
||||||
|
--- linux-3.9.0-0.rc3.git0.2.fc19.x86_64/drivers/cpufreq/intel_pstate.c~ 2013-03-19 14:54:33.489581718 -0400
|
||||||
|
+++ linux-3.9.0-0.rc3.git0.2.fc19.x86_64/drivers/cpufreq/intel_pstate.c 2013-03-19 14:55:09.667523730 -0400
|
||||||
|
@@ -752,6 +752,30 @@ static struct cpufreq_driver intel_pstat
|
||||||
|
|
||||||
|
static int __initdata no_load;
|
||||||
|
|
||||||
|
+static int intel_pstate_msrs_not_valid(void)
|
||||||
|
+{
|
||||||
|
+ /* Check that all the msr's we are using are valid. */
|
||||||
|
+ u64 aperf, mperf, tmp;
|
||||||
|
+
|
||||||
|
+ rdmsrl(MSR_IA32_APERF, aperf);
|
||||||
|
+ rdmsrl(MSR_IA32_MPERF, mperf);
|
||||||
|
+
|
||||||
|
+ if (!intel_pstate_min_pstate() ||
|
||||||
|
+ !intel_pstate_max_pstate() ||
|
||||||
|
+ !intel_pstate_turbo_pstate())
|
||||||
|
+ return -ENODEV;
|
||||||
|
+
|
||||||
|
+ rdmsrl(MSR_IA32_APERF, tmp);
|
||||||
|
+ if (!(tmp - aperf))
|
||||||
|
+ return -ENODEV;
|
||||||
|
+
|
||||||
|
+ rdmsrl(MSR_IA32_MPERF, tmp);
|
||||||
|
+ if (!(tmp - mperf))
|
||||||
|
+ return -ENODEV;
|
||||||
|
+
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static int __init intel_pstate_init(void)
|
||||||
|
{
|
||||||
|
int cpu, rc = 0;
|
||||||
|
@@ -764,6 +788,9 @@ static int __init intel_pstate_init(void
|
||||||
|
if (!id)
|
||||||
|
return -ENODEV;
|
||||||
|
|
||||||
|
+ if (intel_pstate_msrs_not_valid())
|
||||||
|
+ return -ENODEV;
|
||||||
|
+
|
||||||
|
pr_info("Intel P-state driver initializing.\n");
|
||||||
|
|
||||||
|
all_cpu_data = vmalloc(sizeof(void *) * num_possible_cpus());
|
@ -751,6 +751,8 @@ Patch22000: weird-root-dentry-name-debug.patch
|
|||||||
#selinux ptrace child permissions
|
#selinux ptrace child permissions
|
||||||
Patch22001: selinux-apply-different-permission-to-ptrace-child.patch
|
Patch22001: selinux-apply-different-permission-to-ptrace-child.patch
|
||||||
|
|
||||||
|
Patch23000: cpufreq-intel-pstate-validate-msrs.patch
|
||||||
|
|
||||||
# END OF PATCH DEFINITIONS
|
# END OF PATCH DEFINITIONS
|
||||||
|
|
||||||
%endif
|
%endif
|
||||||
@ -1416,6 +1418,9 @@ ApplyPatch weird-root-dentry-name-debug.patch
|
|||||||
#selinux ptrace child permissions
|
#selinux ptrace child permissions
|
||||||
ApplyPatch selinux-apply-different-permission-to-ptrace-child.patch
|
ApplyPatch selinux-apply-different-permission-to-ptrace-child.patch
|
||||||
|
|
||||||
|
# rhbz 922923
|
||||||
|
ApplyPatch cpufreq-intel-pstate-validate-msrs.patch
|
||||||
|
|
||||||
#rhbz 859485
|
#rhbz 859485
|
||||||
ApplyPatch vt-Drop-K_OFF-for-VC_MUTE.patch
|
ApplyPatch vt-Drop-K_OFF-for-VC_MUTE.patch
|
||||||
|
|
||||||
@ -2285,6 +2290,9 @@ fi
|
|||||||
# ||----w |
|
# ||----w |
|
||||||
# || ||
|
# || ||
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Mar 19 2013 Dave Jones <davej@redhat.com>
|
||||||
|
- cpufreq/intel_pstate: Add function to check that all MSR's are valid (rhbz 922923)
|
||||||
|
|
||||||
* Mon Mar 18 2013 Dave Jones <davej@redhat.com> - 3.9.0-0.rc3.git0.4
|
* Mon Mar 18 2013 Dave Jones <davej@redhat.com> - 3.9.0-0.rc3.git0.4
|
||||||
- s390x config option changes from Dan Horák <dan@danny.cz>
|
- s390x config option changes from Dan Horák <dan@danny.cz>
|
||||||
- enable PCI
|
- enable PCI
|
||||||
|
Loading…
Reference in New Issue
Block a user