From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott Wood Date: Fri, 18 Jan 2013 00:47:15 +0000 Subject: Re: [PATCH 1/3] KVM: PPC: e500: Call kvmppc_mmu_map for initial mapping Message-Id: <1358470035.13978.22@snotra> List-Id: References: In-Reply-To: (from agraf@suse.de on Thu Jan 17 18:20:03 2013) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit To: Alexander Graf Cc: kvm-ppc@vger.kernel.org, kvm@vger.kernel.org On 01/17/2013 06:20:03 PM, Alexander Graf wrote: > > On 18.01.2013, at 01:11, Scott Wood wrote: > > > On 01/17/2013 04:50:39 PM, Alexander Graf wrote: > >> @@ -1024,9 +1001,11 @@ void kvmppc_mmu_map(struct kvm_vcpu *vcpu, > u64 eaddr, gpa_t gpaddr, > >> { > >> struct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu); > >> struct tlbe_priv *priv; > >> - struct kvm_book3e_206_tlb_entry *gtlbe, stlbe; > >> + struct kvm_book3e_206_tlb_entry *gtlbe, stlbe = {}; > > > > Is there a code path in which stlbe gets used but not fully filled > in > > without this? > > I am hoping not, but when I wrote this patch gcc suddenly jumped at > me claiming that the whole struct can get used uninitialized: > > arch/powerpc/kvm/e500_mmu_host.c: In function ‘kvmppc_mmu_map’: > arch/powerpc/kvm/e500_mmu_host.c:533: error: ‘stlbe.mas1’ may be used > uninitialized in this function > arch/powerpc/kvm/e500_mmu_host.c:533: error: ‘stlbe.mas2’ may be used > uninitialized in this function > arch/powerpc/kvm/e500_mmu_host.c:533: error: ‘stlbe.mas7_3’ may be > used uninitialized in this function > arch/powerpc/kvm/e500_mmu_host.c:533: error: ‘stlbe.mas8’ may be used > uninitialized in this function > > If you have any idea where this could come from, please let me know > :). I can't reproduce with either GCC 4.5.1 or GCC 4.7.2. Maybe from a non-final version of the patch? It would be nice to not have this, and have GCC be able to detect if we're actually missing something rather than have it get zeroed. BTW, it's "stlbe = {}" in this patch but after the file split, somehow come out as "stlbe = { }". Was that patch supposed to be just a simple cut and paste of part of the file? -Scott 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