--- /dev/null
+From 4422829e8053068e0225e4d0ef42dc41ea7c9ef5 Mon Sep 17 00:00:00 2001
+From: Paolo Bonzini <pbonzini@redhat.com>
+Date: Wed, 9 Jun 2021 01:49:13 -0400
+Subject: kvm: fix previous commit for 32-bit builds
+
+From: Paolo Bonzini <pbonzini@redhat.com>
+
+commit 4422829e8053068e0225e4d0ef42dc41ea7c9ef5 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>
+---
+ include/linux/kvm_host.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/include/linux/kvm_host.h
++++ b/include/linux/kvm_host.h
+@@ -959,8 +959,8 @@ __gfn_to_hva_memslot(struct kvm_memory_s
+ * 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;
+ }
+