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

Reply via email to