Skip to content

Commit 262b003

Browse files
author
Marc Zyngier
committed
KVM: arm64: Fix exclusive limit for IPA size
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 creation of a 2GB memslot at 0x8000000 with a 32bit IPA space. Fix it by relaxing the check to accept a memslot reaching the limit of the IPA space. Fixes: c3058d5 ("arm/arm64: KVM: Ensure memslots are within KVM_PHYS_SIZE") Reviewed-by: Eric Auger <eric.auger@redhat.com> Signed-off-by: Marc Zyngier <maz@kernel.org> Cc: stable@vger.kernel.org Reviewed-by: Andrew Jones <drjones@redhat.com> Link: https://lore.kernel.org/r/20210311100016.3830038-3-maz@kernel.org
1 parent 7d71755 commit 262b003

1 file changed

Lines changed: 1 addition & 2 deletions

File tree

arch/arm64/kvm/mmu.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1312,8 +1312,7 @@ int kvm_arch_prepare_memory_region(struct kvm *kvm,
13121312
* Prevent userspace from creating a memory region outside of the IPA
13131313
* space addressable by the KVM guest IPA space.
13141314
*/
1315-
if (memslot->base_gfn + memslot->npages >=
1316-
(kvm_phys_size(kvm) >> PAGE_SHIFT))
1315+
if ((memslot->base_gfn + memslot->npages) > (kvm_phys_size(kvm) >> PAGE_SHIFT))
13171316
return -EFAULT;
13181317

13191318
mmap_read_lock(current->mm);

0 commit comments

Comments
 (0)