Am 10.05.2012 21:14, schrieb Igor Mammedov: > ----- Original Message ----- >> From: "Andreas Färber" <afaer...@suse.de> >> To: qemu-devel@nongnu.org >> Cc: "Eduardo Habkost" <ehabk...@redhat.com>, "Michael Roth" >> <mdr...@linux.vnet.ibm.com>, "Anthony Liguori" >> <anth...@codemonkey.ws>, "Paolo Bonzini" <pbonz...@redhat.com>, >> imamm...@redhat.com, "Andreas Färber" >> <afaer...@suse.de> >> Sent: Thursday, May 10, 2012 12:09:10 AM >> Subject: [Qemu-devel] [PATCH for-1.1] target-i386: Defer MCE init >> >> Commit de024815e3b523addf58f1f79846b7fe74643678 (target-i386: QOM'ify >> CPU init) moved mce_init() call from helper.c:cpu_x86_init() into >> X86CPU's cpu.c:x86_cpu_initfn(). >> mce_init() checks for a family >= 6 though, so we could end up with a >> sequence such as for -cpu somecpu,family=6: >> >> x86_cpu_initfn => X86CPU::family == 5 >> mce_init => no-op >> cpu_x86_register => X86CPU::family = 6 >> => MCE unexpectedly not init'ed >> >> or for -cpu someothercpu,family=5: >> >> x86_cpu_initfn => X86CPU::family == 6 >> mce_init => init'ed >> cpu_x86_register => X86CPU::family = 5 >> => MCE unexpectedly init'ed >> >> Therefore partially revert the above commit. To avoid moving >> mce_init() back into helper.c, foresightedly move it into a >> new x86_cpu_realize() function and, in lack of ObjectClass::realize, >> call it directly from cpu_x86_init(). >> >> While at it, move the qemu_init_vcpu() call that used to follow >> mce_init() in cpu_x86_init() into the new realizefn as well. >> >> Reported-by: Igor Mammedov <imamm...@redhat.com> >> Signed-off-by: Andreas Färber <afaer...@suse.de> >> Cc: Anthony Liguori <anth...@codemonkey.ws> >> Cc: Paolo Bonzini <pbonz...@redhat.com> >> Cc: Eduardo Habkost <ehabk...@redhat.com> >> Cc: Michael Roth <mdr...@linux.vnet.ibm.com> >> --- >> target-i386/cpu-qom.h | 4 ++++ >> target-i386/cpu.c | 9 ++++++++- >> target-i386/helper.c | 2 +- >> 3 files changed, 13 insertions(+), 2 deletions(-) > > Looks good to me. > > Reviewed-by: Igor Mammedov <imamm...@redhat.com>
Thanks, I've applied it to qom-1.1 and qom-next branches for now: http://repo.or.cz/w/qemu/afaerber.git/shortlog/refs/heads/qom-1.1 http://repo.or.cz/w/qemu/afaerber.git/shortlog/refs/heads/qom-next Andreas -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg