# HG changeset patch # User Keir Fraser # Date 1221148273 -3600 # Node ID a5cc38391afb16af6bdae32c5a5f4f9a3a236987 # Parent d8ce41b79ecc74c00797d73caa56dbdaf02bbd66 ACPI: Grant access of MSR_IA32_THERM_CONTROL MSR to dom0 The purpose is to support dom0 throttling control via MSR. Signed-off-by: Wei Gang Index: xen-3.3.1-testing/xen/arch/x86/traps.c =================================================================== --- xen-3.3.1-testing.orig/xen/arch/x86/traps.c +++ xen-3.3.1-testing/xen/arch/x86/traps.c @@ -2159,6 +2159,12 @@ static int emulate_privileged_op(struct if ( wrmsr_safe(regs->ecx, eax, edx) != 0 ) goto fail; break; + case MSR_IA32_THERM_CONTROL: + if ( boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ) + goto fail; + if ( wrmsr_safe(regs->ecx, eax, edx) != 0 ) + goto fail; + break; default: if ( wrmsr_hypervisor_regs(regs->ecx, eax, edx) ) break; @@ -2235,6 +2241,12 @@ static int emulate_privileged_op(struct MSR_IA32_MISC_ENABLE_PEBS_UNAVAIL | MSR_IA32_MISC_ENABLE_XTPR_DISABLE; break; + case MSR_IA32_THERM_CONTROL: + if ( boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ) + goto fail; + if ( rdmsr_safe(regs->ecx, regs->eax, regs->edx) ) + goto fail; + break; default: if ( rdmsr_hypervisor_regs(regs->ecx, &l, &h) ) {