From b456fd205c3b05c183e9c000d94293ced38af83a Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 15 Mar 2021 12:31:08 +0100 Subject: [PATCH] 4.19-stable patches added patches: kvm-arm64-fix-exclusive-limit-for-ipa-size.patch --- ...m64-fix-exclusive-limit-for-ipa-size.patch | 46 +++++++++++++++++++ queue-4.19/series | 1 + 2 files changed, 47 insertions(+) create mode 100644 queue-4.19/kvm-arm64-fix-exclusive-limit-for-ipa-size.patch diff --git a/queue-4.19/kvm-arm64-fix-exclusive-limit-for-ipa-size.patch b/queue-4.19/kvm-arm64-fix-exclusive-limit-for-ipa-size.patch new file mode 100644 index 00000000000..e83944b90f5 --- /dev/null +++ b/queue-4.19/kvm-arm64-fix-exclusive-limit-for-ipa-size.patch @@ -0,0 +1,46 @@ +From foo@baz Mon Mar 15 12:28:26 PM CET 2021 +From: Marc Zyngier +Date: Mon, 15 Mar 2021 11:08:33 +0000 +Subject: KVM: arm64: Fix exclusive limit for IPA size +To: gregkh@linuxfoundation.org +Cc: kvmarm@lists.cs.columbia.edu, kernel-team@android.com, Eric Auger , stable@vger.kernel.org, Andrew Jones +Message-ID: <20210315110833.4135927-1-maz@kernel.org> + +From: Marc Zyngier + +Commit 262b003d059c6671601a19057e9fe1a5e7f23722 upstream. + +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: c3058d5da222 ("arm/arm64: KVM: Ensure memslots are within KVM_PHYS_SIZE") +Reviewed-by: Eric Auger +Signed-off-by: Marc Zyngier +Cc: stable@vger.kernel.org # 4.4, 4.9, 4.14, 4.19 +Reviewed-by: Andrew Jones +Link: https://lore.kernel.org/r/20210311100016.3830038-3-maz@kernel.org +Signed-off-by: Greg Kroah-Hartman +--- + virt/kvm/arm/mmu.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/virt/kvm/arm/mmu.c ++++ b/virt/kvm/arm/mmu.c +@@ -2080,7 +2080,7 @@ int kvm_arch_prepare_memory_region(struc + * 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 >= ++ if (memslot->base_gfn + memslot->npages > + (KVM_PHYS_SIZE >> PAGE_SHIFT)) + return -EFAULT; + diff --git a/queue-4.19/series b/queue-4.19/series index be8babe6025..cac0d0f7296 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -114,3 +114,4 @@ powerpc-64s-fix-instruction-encoding-for-lis-in-ppc_function_entry.patch binfmt_misc-fix-possible-deadlock-in-bm_register_write.patch x86-unwind-orc-disable-kasan-checking-in-the-orc-unwinder-part-2.patch hwmon-lm90-fix-max6658-sporadic-wrong-temperature-reading.patch +kvm-arm64-fix-exclusive-limit-for-ipa-size.patch -- 2.47.3