From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:56009) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SSCG5-0008Np-Lz for qemu-devel@nongnu.org; Wed, 09 May 2012 15:09:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SSCG3-0002vH-Oi for qemu-devel@nongnu.org; Wed, 09 May 2012 15:09:09 -0400 Received: from e9.ny.us.ibm.com ([32.97.182.139]:49998) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SSCG3-0002so-KN for qemu-devel@nongnu.org; Wed, 09 May 2012 15:09:07 -0400 Received: from /spool/local by e9.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 9 May 2012 15:09:03 -0400 Received: from d01relay03.pok.ibm.com (d01relay03.pok.ibm.com [9.56.227.235]) by d01dlp02.pok.ibm.com (Postfix) with ESMTP id 6FBAD6E804B for ; Wed, 9 May 2012 15:09:02 -0400 (EDT) Received: from d01av04.pok.ibm.com (d01av04.pok.ibm.com [9.56.224.64]) by d01relay03.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id q49J925r088772 for ; Wed, 9 May 2012 15:09:02 -0400 Received: from d01av04.pok.ibm.com (loopback [127.0.0.1]) by d01av04.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id q49J90ol008813 for ; Wed, 9 May 2012 15:09:00 -0400 Message-ID: <4FAAC0C9.7060008@us.ibm.com> Date: Wed, 09 May 2012 14:08:57 -0500 From: Anthony Liguori MIME-Version: 1.0 References: <1336590089-30154-1-git-send-email-imammedo@redhat.com> In-Reply-To: <1336590089-30154-1-git-send-email-imammedo@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH for 1.1-rc1] mce_init should be called after parsing cpu_model List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Igor Mammedov Cc: mdroth@linux.vnet.ibm.com, qemu-devel@nongnu.org, ehabkost@redhat.com, afaerber@suse.de What bug is this fixing? Regards, Anthony Liguori On 05/09/2012 02:01 PM, Igor Mammedov wrote: > Signed-off-by: Igor Mammedov > --- > target-i386/cpu.c | 35 ++++++++++++++++++----------------- > 1 files changed, 18 insertions(+), 17 deletions(-) > > diff --git a/target-i386/cpu.c b/target-i386/cpu.c > index 65d9af6..5d11e7b 100644 > --- a/target-i386/cpu.c > +++ b/target-i386/cpu.c > @@ -1153,6 +1153,22 @@ void x86_cpu_list(FILE *f, fprintf_function cpu_fprintf, const char *optarg) > } > } > > +static void mce_init(X86CPU *cpu) > +{ > + CPUX86State *cenv =&cpu->env; > + unsigned int bank; > + > + if (((cenv->cpuid_version>> 8)& 0xf)>= 6 > +&& (cenv->cpuid_features& (CPUID_MCE | CPUID_MCA)) == > + (CPUID_MCE | CPUID_MCA)) { > + cenv->mcg_cap = MCE_CAP_DEF | MCE_BANKS_DEF; > + cenv->mcg_ctl = ~(uint64_t)0; > + for (bank = 0; bank< MCE_BANKS_DEF; bank++) { > + cenv->mce_banks[bank * 4] = ~(uint64_t)0; > + } > + } > +} > + > int cpu_x86_register(X86CPU *cpu, const char *cpu_model) > { > CPUX86State *env =&cpu->env; > @@ -1204,6 +1220,8 @@ int cpu_x86_register(X86CPU *cpu, const char *cpu_model) > error_free(error); > return -1; > } > + > + mce_init(cpu); > return 0; > } > > @@ -1706,22 +1724,6 @@ static void x86_cpu_reset(CPUState *s) > cpu_watchpoint_remove_all(env, BP_CPU); > } > > -static void mce_init(X86CPU *cpu) > -{ > - CPUX86State *cenv =&cpu->env; > - unsigned int bank; > - > - if (((cenv->cpuid_version>> 8)& 0xf)>= 6 > -&& (cenv->cpuid_features& (CPUID_MCE | CPUID_MCA)) == > - (CPUID_MCE | CPUID_MCA)) { > - cenv->mcg_cap = MCE_CAP_DEF | MCE_BANKS_DEF; > - cenv->mcg_ctl = ~(uint64_t)0; > - for (bank = 0; bank< MCE_BANKS_DEF; bank++) { > - cenv->mce_banks[bank * 4] = ~(uint64_t)0; > - } > - } > -} > - > static void x86_cpu_initfn(Object *obj) > { > X86CPU *cpu = X86_CPU(obj); > @@ -1755,7 +1757,6 @@ static void x86_cpu_initfn(Object *obj) > x86_cpuid_set_tsc_freq, NULL, NULL, NULL); > > env->cpuid_apic_id = env->cpu_index; > - mce_init(cpu); > } > > static void x86_cpu_common_class_init(ObjectClass *oc, void *data)