[PATCH] RISC-V: KVM: Allow memslots ending at the GPA limit

Anup Patel anup at brainfault.org
Fri Aug 7 09:40:20 PDT 2026


On Sat, Jul 18, 2026 at 9:22 AM Pengpeng Hou <pengpeng at iscas.ac.cn> wrote:
>
> 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 <pengpeng at iscas.ac.cn>

LGTM.

Reviewed-by: Anup Patel <anup at brainfault.org>

Queued this patch for Linux-7.3

Thanks,
Anup


> ---
>  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 082f9b2617338..d3c0c699adb60 100644
> --- a/arch/riscv/kvm/mmu.c
> +++ b/arch/riscv/kvm/mmu.c
> @@ -184,7 +184,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;
>
> --
> 2.43.0
>



More information about the kvm-riscv mailing list