]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
KVM: PPC: Book3S HV: radix: Fix uninitialized var build error
authorMichael Ellerman <mpe@ellerman.id.au>
Sun, 30 Dec 2018 03:05:13 +0000 (14:05 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Sun, 30 Dec 2018 03:05:13 +0000 (14:05 +1100)
Old GCCs (4.6.3 at least), aren't able to follow the logic in
__kvmhv_copy_tofrom_guest_radix() and warn that old_pid is used
uninitialized:

  arch/powerpc/kvm/book3s_64_mmu_radix.c:75:3: error: 'old_pid' may be
  used uninitialized in this function

The logic is OK, we only use old_pid if quadrant == 1, and in that
case it has definitely be initialised, eg:

if (quadrant == 1) {
old_pid = mfspr(SPRN_PID);
...
if (quadrant == 1 && pid != old_pid)
mtspr(SPRN_PID, old_pid);

Annotate it to fix the error.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kvm/book3s_64_mmu_radix.c

index fb88167a402a55beec477c84222c3d734f7a3554..1b821c6efdefba002f3c104208857d7b0694b478 100644 (file)
@@ -33,8 +33,8 @@ unsigned long __kvmhv_copy_tofrom_guest_radix(int lpid, int pid,
                                              gva_t eaddr, void *to, void *from,
                                              unsigned long n)
 {
+       int uninitialized_var(old_pid), old_lpid;
        unsigned long quadrant, ret = n;
-       int old_pid, old_lpid;
        bool is_load = !!to;
 
        /* Can't access quadrants 1 or 2 in non-HV mode, call the HV to do it */