[PATCH RFC v7 01/64] KVM: Fix memslot boundary condition for large page

From: Michael Roth
Date: Wed Dec 14 2022 - 14:53:57 EST


From: Nikunj A Dadhania <nikunj@xxxxxxx>

Aligned end boundary causes a kvm crash, handle the case.

Signed-off-by: Nikunj A Dadhania <nikunj@xxxxxxx>
Signed-off-by: Michael Roth <michael.roth@xxxxxxx>
---
arch/x86/kvm/mmu/mmu.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c
index b1953ebc012e..b3ffc61c668c 100644
--- a/arch/x86/kvm/mmu/mmu.c
+++ b/arch/x86/kvm/mmu/mmu.c
@@ -7159,6 +7159,9 @@ static void kvm_update_lpage_private_shared_mixed(struct kvm *kvm,
for (gfn = first + pages; gfn < last; gfn += pages)
linfo_set_mixed(gfn, slot, level, false);

+ if (gfn == last)
+ goto out;
+
gfn = last;
gfn_end = min(last + pages, slot->base_gfn + slot->npages);
mixed = mem_attrs_mixed(kvm, slot, level, attrs, gfn, gfn_end);
--
2.25.1