From patchwork Tue Jan 5 08:32:24 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [BUGFIX] MCE: Fix bug of IA32_MCG_STATUS after system reset Date: Mon, 04 Jan 2010 22:32:24 -0000 From: Huang Ying X-Patchwork-Id: 42175 Message-Id: <1262680344.31401.226.camel@yhuang-dev.sh.intel.com> To: Anthony Liguori Cc: qemu-devel@nongnu.org Now, if we inject a fatal MCE into guest OS, for example Linux, Linux will go panic and then reboot. But if we inject another MCE now, system will reset directly instead of go panic firstly, because MCG_STATUS.MCIP is set to 1 and not cleared after reboot. This is does not follow the behavior in real hardware. This patch fixes this via set env->mcg_status to 0 during system reset. Signed-off-by: Huang Ying --- target-i386/helper.c | 2 ++ 1 file changed, 2 insertions(+) --- a/target-i386/helper.c +++ b/target-i386/helper.c @@ -617,6 +617,8 @@ void cpu_reset(CPUX86State *env) env->dr[7] = DR7_FIXED_1; cpu_breakpoint_remove_all(env, BP_CPU); cpu_watchpoint_remove_all(env, BP_CPU); + + env->mcg_status = 0; } void cpu_x86_close(CPUX86State *env)