aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/xen/enlighten.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index d1f9a0472d44..272ebd0ce326 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -208,6 +208,9 @@ static void __init xen_banner(void)
208 xen_feature(XENFEAT_mmu_pt_update_preserve_ad) ? " (preserve-AD)" : ""); 208 xen_feature(XENFEAT_mmu_pt_update_preserve_ad) ? " (preserve-AD)" : "");
209} 209}
210 210
211#define CPUID_THERM_POWER_LEAF 6
212#define APERFMPERF_PRESENT 0
213
211static __read_mostly unsigned int cpuid_leaf1_edx_mask = ~0; 214static __read_mostly unsigned int cpuid_leaf1_edx_mask = ~0;
212static __read_mostly unsigned int cpuid_leaf1_ecx_mask = ~0; 215static __read_mostly unsigned int cpuid_leaf1_ecx_mask = ~0;
213 216
@@ -241,6 +244,11 @@ static void xen_cpuid(unsigned int *ax, unsigned int *bx,
241 *dx = cpuid_leaf5_edx_val; 244 *dx = cpuid_leaf5_edx_val;
242 return; 245 return;
243 246
247 case CPUID_THERM_POWER_LEAF:
248 /* Disabling APERFMPERF for kernel usage */
249 maskecx = ~(1 << APERFMPERF_PRESENT);
250 break;
251
244 case 0xb: 252 case 0xb:
245 /* Suppress extended topology stuff */ 253 /* Suppress extended topology stuff */
246 maskebx = 0; 254 maskebx = 0;