On Thu, 2010-11-25 at 09:20 +0800, Jin Dongming wrote: > --- a/monitor.c > +++ b/monitor.c > @@ -60,6 +60,7 @@ > #include "trace.h" > #endif > #include "qemu-kvm.h" > +#include "kvm_x86.h" > > //#define DEBUG > //#define DEBUG_COMPLETION > @@ -2277,7 +2278,19 @@ static void do_inject_mce(Monitor *mon, const QDict *qdict) > #endif > > for (cenv = first_cpu; cenv != NULL; cenv = cenv->next_cpu) { > - if (cenv->cpu_index == cpu_index && cenv->mcg_cap) { > + if (!cenv->mcg_cap) > + continue; > + > +#if defined(KVM_CAP_MCE) > + if (!status && !mcg_status) { > + if (cenv->cpu_index == cpu_index || broadcast) > + kvm_inject_x86_mce(cenv, 0, 0, 0, 0, 0, 0); > + > + continue; > + } > +#endif > + > + if (cenv->cpu_index == cpu_index) { > cpu_inject_x86_mce(cenv, bank, status, mcg_status, addr, misc); > #if defined(KVM_CAP_MCE) > if (broadcast) Are you sure there is no test cases that require the Machine Check registers not cleared? I have had a test case before that injects another MCE when MCIP in MCGSTATUS is set to check whether system will go reset. It may be better to clear MC registers in an explicit mode. Best Regards, Huang Ying -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html