From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott Wood Subject: Re: [PATCH 1/3] KVM: PPC: e500: Call kvmppc_mmu_map for initial mapping Date: Thu, 17 Jan 2013 18:47:15 -0600 Message-ID: <1358470035.13978.22@snotra> References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; delsp=Yes format=Flowed Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: , To: Alexander Graf Return-path: Received: from co9ehsobe001.messaging.microsoft.com ([207.46.163.24]:20751 "EHLO co9outboundpool.messaging.microsoft.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753825Ab3ARArW convert rfc822-to-8bit (ORCPT ); Thu, 17 Jan 2013 19:47:22 -0500 In-Reply-To: (from agraf@suse.de on Thu Jan 17 18:20:03 2013) Content-Disposition: inline Sender: kvm-owner@vger.kernel.org List-ID: On 01/17/2013 06:20:03 PM, Alexander Graf wrote: >=20 > On 18.01.2013, at 01:11, Scott Wood wrote: >=20 > > On 01/17/2013 04:50:39 PM, Alexander Graf wrote: > >> @@ -1024,9 +1001,11 @@ void kvmppc_mmu_map(struct kvm_vcpu *vcpu, = =20 > u64 eaddr, gpa_t gpaddr, > >> { > >> struct kvmppc_vcpu_e500 *vcpu_e500 =3D to_e500(vcpu); > >> struct tlbe_priv *priv; > >> - struct kvm_book3e_206_tlb_entry *gtlbe, stlbe; > >> + struct kvm_book3e_206_tlb_entry *gtlbe, stlbe =3D {}; > > > > Is there a code path in which stlbe gets used but not fully filled = =20 > in > > without this? >=20 > I am hoping not, but when I wrote this patch gcc suddenly jumped at =20 > me claiming that the whole struct can get used uninitialized: >=20 > arch/powerpc/kvm/e500_mmu_host.c: In function =E2=80=98kvmppc_mmu_map= =E2=80=99: > arch/powerpc/kvm/e500_mmu_host.c:533: error: =E2=80=98stlbe.mas1=E2=80= =99 may be used =20 > uninitialized in this function > arch/powerpc/kvm/e500_mmu_host.c:533: error: =E2=80=98stlbe.mas2=E2=80= =99 may be used =20 > uninitialized in this function > arch/powerpc/kvm/e500_mmu_host.c:533: error: =E2=80=98stlbe.mas7_3=E2= =80=99 may be =20 > used uninitialized in this function > arch/powerpc/kvm/e500_mmu_host.c:533: error: =E2=80=98stlbe.mas8=E2=80= =99 may be used =20 > uninitialized in this function >=20 > If you have any idea where this could come from, please let me know =20 > :). I can't reproduce with either GCC 4.5.1 or GCC 4.7.2. Maybe from a =20 non-final version of the patch? It would be nice to not have this, and= =20 have GCC be able to detect if we're actually missing something rather =20 than have it get zeroed. BTW, it's "stlbe =3D {}" in this patch but after the file split, someho= w =20 come out as "stlbe =3D { }". Was that patch supposed to be just a simp= le =20 cut and paste of part of the file? -Scott