On 05/03/20 01:24, Sean Christopherson wrote: > 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@xxxxxxxxx> > --- > arch/x86/kvm/x86.c | 8 ++++++-- > 1 file 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; > } > > Queued, thanks. Paolo