debuggers.hg
changeset 18054:aab9fbd6ffa0
intel: Stricter check for cpuid feature mask MSR availability.
Signed-off-by: Liping Ke <liping.ke@intel.com>
Signed-off-by: Jun Nakajima <nakajima.jun@intel.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Signed-off-by: Liping Ke <liping.ke@intel.com>
Signed-off-by: Jun Nakajima <nakajima.jun@intel.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
author | Keir Fraser <keir.fraser@citrix.com> |
---|---|
date | Thu Jul 10 11:26:42 2008 +0100 (2008-07-10) |
parents | a891e0f6ff18 |
children | 707e10c9a487 |
files | xen/arch/x86/cpu/intel.c |
line diff
1.1 --- a/xen/arch/x86/cpu/intel.c Thu Jul 10 10:07:32 2008 +0100 1.2 +++ b/xen/arch/x86/cpu/intel.c Thu Jul 10 11:26:42 2008 +0100 1.3 @@ -37,13 +37,14 @@ struct movsl_mask movsl_mask __read_most 1.4 1.5 static void __devinit set_cpuidmask(void) 1.6 { 1.7 - unsigned int eax, ebx, ecx, edx; 1.8 + unsigned int eax, ebx, ecx, edx, model; 1.9 1.10 if (!(opt_cpuid_mask_ecx | opt_cpuid_mask_edx)) 1.11 return; 1.12 1.13 cpuid(0x00000001, &eax, &ebx, &ecx, &edx); 1.14 - if (eax < 0x00010674) { 1.15 + model = ((eax & 0xf0000) >> 12) | ((eax & 0xf0) >> 4); 1.16 + if (!((model == 0x1d) || ((model == 0x17) && ((eax & 0xf) >= 4)))) { 1.17 printk(XENLOG_ERR "Cannot set CPU feature mask on CPU#%d\n", 1.18 smp_processor_id()); 1.19 return;