Re: [PATCH 1/3] KVM: PPC: e500: Call kvmppc_mmu_map for initial mapping

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux