[PATCH v2 2/2] KVM: arm64: Fix exclusive limit for IPA size
Auger Eric
eric.auger at redhat.com
Wed Mar 10 10:58:45 GMT 2021
Hi Marc,
On 3/10/21 11:42 AM, Marc Zyngier wrote:
> When registering a memslot, we check the size and location of that
> memslot against the IPA size to ensure that we can provide guest
> access to the whole of the memory.
>
> Unfortunately, this check rejects memslot that end-up at the exact
> limit of the addressing capability for a given IPA size. For example,
> it refuses the creatrion of a 2GB memslot at 0x8000000 with a 32bit
creation
> IPA space.
>
> Fix it by relaxing the check to accept a memslot reaching the
> limit of the IPA space.
>
> Signed-off-by: Marc Zyngier <maz at kernel.org>
stable + Fixes?
> ---
> arch/arm64/kvm/mmu.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/arch/arm64/kvm/mmu.c b/arch/arm64/kvm/mmu.c
> index 77cb2d28f2a4..8711894db8c2 100644
> --- a/arch/arm64/kvm/mmu.c
> +++ b/arch/arm64/kvm/mmu.c
> @@ -1312,8 +1312,7 @@ int kvm_arch_prepare_memory_region(struct kvm *kvm,
> * Prevent userspace from creating a memory region outside of the IPA
> * space addressable by the KVM guest IPA space.
> */
> - if (memslot->base_gfn + memslot->npages >=
> - (kvm_phys_size(kvm) >> PAGE_SHIFT))
> + if ((memslot->base_gfn + memslot->npages) > (kvm_phys_size(kvm) >> PAGE_SHIFT))
> return -EFAULT;
>
> mmap_read_lock(current->mm);
>
Reviewed-by: Eric Auger <eric.auger at redhat.com>
Thanks
Eric
More information about the linux-arm-kernel
mailing list