summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Christopherson <sean.j.christopherson@intel.com>2020-03-04 16:24:22 -0800
committerPaolo Bonzini <pbonzini@redhat.com>2020-03-16 17:57:48 +0100
commitabbed4fa94f69d2046c6f7c12f6ecabf195c553e (patch)
treee6c4a491cc13e92f376685f4dac7d35243ef3afb
parent96d4701049a7b888e7c5837bf61e49d9bd5f889c (diff)
downloadlinux-abbed4fa94f69d2046c6f7c12f6ecabf195c553e.tar.gz
linux-abbed4fa94f69d2046c6f7c12f6ecabf195c553e.tar.bz2
linux-abbed4fa94f69d2046c6f7c12f6ecabf195c553e.zip
KVM: x86: Fix warning due to implicit truncation on 32-bit KVM
Explicitly cast the integer literal to an unsigned long when stuffing a non-canonical value into the host virtual address during private memslot deletion. The explicit cast fixes a warning that gets promoted to an error when running with KVM's newfangled -Werror setting. arch/x86/kvm/x86.c:9739:9: error: large integer implicitly truncated to unsigned type [-Werror=overflow] Fixes: a3e967c0b87d3 ("KVM: Terminate memslot walks via used_slots" Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--arch/x86/kvm/x86.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index ba4d476b79ad..fa03f31ab33c 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -9735,8 +9735,12 @@ int __x86_set_memory_region(struct kvm *kvm, int id, gpa_t gpa, u32 size)
if (!slot || !slot->npages)
return 0;
- /* Stuff a non-canonical value to catch use-after-delete. */
- hva = 0xdeadull << 48;
+ /*
+ * Stuff a non-canonical value to catch use-after-delete. This
+ * ends up being 0 on 32-bit KVM, but there's no better
+ * alternative.
+ */
+ hva = (unsigned long)(0xdeadull << 48);
old_npages = slot->npages;
}