MIPS: KVM: Fix ptr->int cast via KVM_GUEST_KSEGX()
authorJames Hogan <james.hogan@imgtec.com>
Fri, 8 Jul 2016 10:53:29 +0000 (11:53 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 1 Aug 2016 16:42:26 +0000 (18:42 +0200)
kvm_mips_trans_replace() passes a pointer to KVM_GUEST_KSEGX(). This
breaks on 64-bit builds due to the cast of that 64-bit pointer to a
different sized 32-bit int. Cast the pointer argument to an unsigned
long to work around the warning.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: "Radim Krčmář" <rkrcmar@redhat.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: linux-mips@linux-mips.org
Cc: kvm@vger.kernel.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/mips/kvm/dyntrans.c

index c793ff19a8a87ae3d65935b4bca5e441e2d2e156..d280894915ed0dd780052f6a99c58a2172f5fcd2 100644 (file)
@@ -33,7 +33,7 @@ static int kvm_mips_trans_replace(struct kvm_vcpu *vcpu, u32 *opc,
        unsigned long paddr, flags;
        void *vaddr;
 
-       if (KVM_GUEST_KSEGX(opc) == KVM_GUEST_KSEG0) {
+       if (KVM_GUEST_KSEGX((unsigned long)opc) == KVM_GUEST_KSEG0) {
                paddr = kvm_mips_translate_guest_kseg0_to_hpa(vcpu,
                                                            (unsigned long)opc);
                vaddr = kmap_atomic(pfn_to_page(PHYS_PFN(paddr)));