Skip to content

Commit

Permalink
kvm: fix previous commit for 32-bit builds
Browse files Browse the repository at this point in the history
commit 4422829 upstream.

array_index_nospec does not work for uint64_t on 32-bit builds.
However, the size of a memory slot must be less than 20 bits wide
on those system, since the memory slot must fit in the user
address space.  So just store it in an unsigned long.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Paolo Bonzini authored and Greg Kroah-Hartman committed Jun 16, 2021
1 parent 32943db commit ea1d322
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions include/linux/kvm_host.h
Original file line number Diff line number Diff line change
Expand Up @@ -939,8 +939,8 @@ __gfn_to_hva_memslot(struct kvm_memory_slot *slot, gfn_t gfn)
* table walks, do not let the processor speculate loads outside
* the guest's registered memslots.
*/
unsigned long offset = array_index_nospec(gfn - slot->base_gfn,
slot->npages);
unsigned long offset = gfn - slot->base_gfn;
offset = array_index_nospec(offset, slot->npages);
return slot->userspace_addr + offset * PAGE_SIZE;
}

Expand Down

0 comments on commit ea1d322

Please sign in to comment.