(2010/10/08 17:25), Huang Ying wrote: > On real machine, if MCG_SER_P in MSR_MCG_CAP is not set, SRAO/SRAR MCE > should not be raised by hardware. This patch makes QEMU-KVM to follow > the same rule. > > Reported-by: Hidetoshi Seto <seto.hidetoshi@xxxxxxxxxxxxxx> > Signed-off-by: Huang Ying <ying.huang@xxxxxxxxx> > --- > qemu-kvm.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > --- a/qemu-kvm.c > +++ b/qemu-kvm.c > @@ -1134,7 +1134,7 @@ static void sigbus_handler(int n, struct > void *ctx) > { > #if defined(KVM_CAP_MCE) && defined(TARGET_I386) > - if (first_cpu->mcg_cap && siginfo->ssi_addr > + if ((first_cpu->mcg_cap & MCG_SER_P) && siginfo->ssi_addr > && siginfo->ssi_code == BUS_MCEERR_AO) { > uint64_t status; > void *vaddr; > @@ -1324,7 +1324,7 @@ static void kvm_on_sigbus(CPUState *env, > unsigned long paddr; > int r; > > - if (env->mcg_cap && siginfo->si_addr > + if ((env->mcg_cap & MCG_SER_P) && siginfo->si_addr > && (siginfo->si_code == BUS_MCEERR_AR > || siginfo->si_code == BUS_MCEERR_AO)) { > if (siginfo->si_code == BUS_MCEERR_AR) { > @@ -1356,7 +1356,7 @@ static void kvm_on_sigbus(CPUState *env, > if (do_qemu_ram_addr_from_host(vaddr, &ram_addr) || > !kvm_physical_memory_addr_from_ram(kvm_state, ram_addr, (target_phys_addr_t *)&paddr)) { > fprintf(stderr, "Hardware memory error for memory used by " > - "QEMU itself instaed of guest system!\n"); > + "QEMU itself instead of guest system!\n"); > /* Hope we are lucky for AO MCE */ > if (siginfo->si_code == BUS_MCEERR_AO) { > return; Reviewed-by: Hidetoshi Seto <seto.hidetoshi@xxxxxxxxxxxxxx> Thanks, H.Seto -- 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