diff --git a/qemu/target/i386/misc_helper.c b/qemu/target/i386/misc_helper.c index 1250b31d..c6a0153c 100644 --- a/qemu/target/i386/misc_helper.c +++ b/qemu/target/i386/misc_helper.c @@ -446,6 +446,9 @@ void helper_rdmsr(CPUX86State *env) val = env->tsc_aux; break; #endif + case MSR_SMI_COUNT: + val = env->msr_smi_count; + break; case MSR_MTRRphysBase(0): case MSR_MTRRphysBase(1): case MSR_MTRRphysBase(2): diff --git a/qemu/target/i386/smm_helper.c b/qemu/target/i386/smm_helper.c index 77e4fe4b..b1567525 100644 --- a/qemu/target/i386/smm_helper.c +++ b/qemu/target/i386/smm_helper.c @@ -53,6 +53,7 @@ void do_smm_enter(X86CPU *cpu) qemu_log_mask(CPU_LOG_INT, "SMM: enter\n"); log_cpu_state_mask(CPU_LOG_INT, CPU(cpu), CPU_DUMP_CCOP); + env->msr_smi_count++; env->hflags |= HF_SMM_MASK; if (env->hflags2 & HF2_NMI_MASK) { env->hflags2 |= HF2_SMM_INSIDE_NMI_MASK;