diff options
author | Justin M. Forbes <jforbes@redhat.com> | 2013-04-01 11:15:57 -0500 |
---|---|---|
committer | Justin M. Forbes <jforbes@redhat.com> | 2013-04-01 11:15:57 -0500 |
commit | 6e429107c2fa5b88eabcfda9db729eea93095534 (patch) | |
tree | 522d15ad107d1740cc744e545ee6413a7956e2c8 /cpufreq-intel-pstate-validate-msrs.patch | |
parent | 831cb39c244ee79e36eae1a98dbc96e1a53f7513 (diff) | |
download | kernel-6e429107c2fa5b88eabcfda9db729eea93095534.tar.gz kernel-6e429107c2fa5b88eabcfda9db729eea93095534.tar.xz kernel-6e429107c2fa5b88eabcfda9db729eea93095534.zip |
Linux v3.9-rc5
Diffstat (limited to 'cpufreq-intel-pstate-validate-msrs.patch')
-rw-r--r-- | cpufreq-intel-pstate-validate-msrs.patch | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/cpufreq-intel-pstate-validate-msrs.patch b/cpufreq-intel-pstate-validate-msrs.patch deleted file mode 100644 index 0a790a0b6..000000000 --- a/cpufreq-intel-pstate-validate-msrs.patch +++ /dev/null @@ -1,56 +0,0 @@ -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()); |