KVM: arm64: Check for kvm_vma_mte_allowed in the critical section
authorMarc Zyngier <maz@kernel.org>
Thu, 16 Mar 2023 17:45:46 +0000 (17:45 +0000)
committerOliver Upton <oliver.upton@linux.dev>
Thu, 16 Mar 2023 23:42:56 +0000 (23:42 +0000)
commit8c2e8ac8ad4be68409e806ce1cc78fc7a04539f3
tree13730fce21c4cfe0ff7cdf507ddebecb2996ce84
parente86fc1a3a3e9b4850fe74d738e3cfcf4297d8bba
KVM: arm64: Check for kvm_vma_mte_allowed in the critical section

On page fault, we find about the VMA that backs the page fault
early on, and quickly release the mmap_read_lock. However, using
the VMA pointer after the critical section is pretty dangerous,
as a teardown may happen in the meantime and the VMA be long gone.

Move the sampling of the MTE permission early, and NULL-ify the
VMA pointer after that, just to be on the safe side.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20230316174546.3777507-3-maz@kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
arch/arm64/kvm/mmu.c