linux/arch/arm64
Marc Zyngier 1dfccde646 KVM: arm64: Disable interrupts while walking userspace PTs
commit e86fc1a3a3 upstream.

We walk the userspace PTs to discover what mapping size was
used there. However, this can race against the userspace tables
being freed, and we end-up in the weeds.

Thankfully, the mm code is being generous and will IPI us when
doing so. So let's implement our part of the bargain and disable
interrupts around the walk. This ensures that nothing terrible
happens during that time.

We still need to handle the removal of the page tables before
the walk. For that, allow get_user_mapping_size() to return an
error, and make sure this error can be propagated all the way
to the the exit handler.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20230316174546.3777507-2-maz@kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2023-04-05 11:25:01 +02:00
..
boot arm64: dts: imx8mm-nitrogen-r2: fix WM8960 clock name 2023-03-30 12:47:56 +02:00
configs arm64: defconfig: build imx-sdma as a module 2022-04-08 14:24:00 +02:00
crypto crypto: arm64/gcm - Select AEAD for GHASH_ARM64_CE 2022-08-17 14:23:26 +02:00
hyperv arm64: hyperv: Initialize hypervisor on boot 2021-08-04 16:54:36 +00:00
include arm64: efi: Make efi_rt_lock a raw_spinlock 2023-03-17 08:48:51 +01:00
kernel arm64: efi: Make efi_rt_lock a raw_spinlock 2023-03-17 08:48:51 +01:00
kvm KVM: arm64: Disable interrupts while walking userspace PTs 2023-04-05 11:25:01 +02:00
lib arm64: mte: DC {GVA,GZVA} shouldn't be used when DCZID_EL0.DZP == 1 2022-01-27 11:03:28 +01:00
mm exit: Add and use make_task_dead. 2023-02-01 08:27:20 +01:00
net bpf, arm64: Use emit_addr_mov_i64() for BPF_PSEUDO_FUNC 2022-07-12 16:34:54 +02:00
tools arm64: errata: Remove AES hwcap for COMPAT tasks 2022-10-29 10:12:53 +02:00
xen arm64: xen: Use modern annotations for assembly functions 2020-01-09 16:09:42 +00:00
Kbuild arm64: hyperv: Add Hyper-V hypercall and register access utilities 2021-08-04 16:54:36 +00:00
Kconfig arm64: errata: Remove AES hwcap for COMPAT tasks 2022-10-29 10:12:53 +02:00
Kconfig.debug arm64: remove TEXT_OFFSET randomization 2020-06-15 13:10:59 +01:00
Kconfig.platforms irqchip/exiu: Fix acknowledgment of edge triggered interrupts 2022-06-09 10:22:54 +02:00
Makefile arm64 updates for 5.15: 2021-09-01 15:04:29 -07:00