@@ -3353,6 +3353,15 @@ static int cf_check vmx_msr_read_intercept(
if ( !nvmx_msr_read_intercept(msr, msr_content) )
goto gp_fault;
break;
+
+ case MSR_TEMPERATURE_TARGET:
+ case MSR_TURBO_RATIO_LIMIT...MSR_TURBO_RATIO_LIMIT2:
+ if ( !rdmsr_safe(msr, *msr_content) )
+ break;
+ /* RO for guests, MSR_PLATFORM_INFO bits set accordingly in msr.c to indicate lack of write
+ * support. */
+ goto gp_fault;
+
case MSR_IA32_MISC_ENABLE:
rdmsrl(MSR_IA32_MISC_ENABLE, *msr_content);
/* Debug Trace Store is not supported. */
@@ -960,6 +960,10 @@ static int cf_check read_msr(
*val = guest_misc_enable(*val);
return X86EMUL_OKAY;
+ case MSR_TEMPERATURE_TARGET:
+ case MSR_TURBO_RATIO_LIMIT...MSR_TURBO_RATIO_LIMIT2:
+ goto normal;
+
case MSR_P6_PERFCTR(0) ... MSR_P6_PERFCTR_LAST:
case MSR_P6_EVNTSEL(0) ... MSR_P6_EVNTSEL_LAST:
case MSR_CORE_PERF_FIXED_CTR0 ... MSR_CORE_PERF_FIXED_CTRn: