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 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
--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM Development]     [KVM ARM]     [KVM ia64]     [Linux Virtualization]     [Linux USB Devel]     [Linux Video]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux