]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: arm/arm64: Properly handle faulting of device mappings
authorMarc Zyngier <maz@kernel.org>
Wed, 11 Dec 2019 16:56:48 +0000 (16:56 +0000)
committerMarc Zyngier <maz@kernel.org>
Thu, 12 Dec 2019 16:22:40 +0000 (16:22 +0000)
commit2ce74b72cab61b5330247617e35510c96042d3c9
tree5b9bab0ecf1b4fdcdb0275aa1a5c35db026110a8
parent43489e882b32b174aca0228577c9e3adc58e6706
KVM: arm/arm64: Properly handle faulting of device mappings

A device mapping is normally always mapped at Stage-2, since there
is very little gain in having it faulted in.

Nonetheless, it is possible to end-up in a situation where the device
mapping has been removed from Stage-2 (userspace munmaped the VFIO
region, and the MMU notifier did its job), but present in a userspace
mapping (userpace has mapped it back at the same address). In such
a situation, the device mapping will be demand-paged as the guest
performs memory accesses.

This requires to be careful when dealing with mapping size, cache
management, and to handle potential execution of a device mapping.

Reported-by: Alexandru Elisei <alexandru.elisei@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Tested-by: Alexandru Elisei <alexandru.elisei@arm.com>
Reviewed-by: James Morse <james.morse@arm.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20191211165651.7889-2-maz@kernel.org
virt/kvm/arm/mmu.c