From e8f3e9ba146a2089465ea7e98e857d78f8d4788a Mon Sep 17 00:00:00 2001 From: Pengpeng Hou Date: Sat, 18 Jul 2026 11:52:36 +0800 Subject: [PATCH] RISC-V: KVM: Allow memslots ending at the GPA limit KVM memslots describe half-open ranges [base_gfn, base_gfn + npages). A slot ending exactly at the guest physical-address limit has its final page below that limit and is valid. The current greater-than-or-equal comparison rejects a valid boundary case. Use a strict greater-than comparison, matching equivalent KVM architecture checks. Fixes: 9d05c1fee837 ("RISC-V: KVM: Implement stage2 page table programming") Signed-off-by: Pengpeng Hou Reviewed-by: Anup Patel Link: https://lore.kernel.org/r/20260718033646.002.31dc89f2-caplitmus-rv@iscas.ac.cn Signed-off-by: Anup Patel --- arch/riscv/kvm/mmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/riscv/kvm/mmu.c b/arch/riscv/kvm/mmu.c index d9040c394933..6035b5ec9503 100644 --- a/arch/riscv/kvm/mmu.c +++ b/arch/riscv/kvm/mmu.c @@ -272,7 +272,7 @@ int kvm_arch_prepare_memory_region(struct kvm *kvm, * Prevent userspace from creating a memory region outside of the GPA * space addressable by the KVM guest GPA space. */ - if ((new->base_gfn + new->npages) >= + if ((new->base_gfn + new->npages) > kvm_riscv_gstage_gpa_size(kvm->arch.pgd_levels) >> PAGE_SHIFT) return -EFAULT;