On 18.01.2013, at 01:47, Scott Wood wrote:
> 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.
Bleks - the warning was actually genuine. I have no idea why it never triggered
before, but when kvmppc_e500_shadow_map errored out with if
(is_error_noslot_pfn(pfn)) then the masX fields were never set in stlbe.
I've added proper error passing now. Let's see if I can still manage to split
all of this into patches...
Alex
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html