summaryrefslogtreecommitdiff
path: root/arch/arm/mach-lpc32xx
diff options
context:
space:
mode:
authorMarc Zyngier <marc.zyngier@arm.com>2015-01-05 21:13:24 +0000
committerChristoffer Dall <christoffer.dall@linaro.org>2015-01-29 23:24:57 +0100
commit0d3e4d4fade6b04e933b11e69e80044f35e9cd60 (patch)
tree57b219954fcb587cd0bbf8b3a4abbe40c269a2da /arch/arm/mach-lpc32xx
parent363ef89f8e9bcedc28b976d0fe2d858fe139c122 (diff)
arm/arm64: KVM: Use kernel mapping to perform invalidation on page fault
When handling a fault in stage-2, we need to resync I$ and D$, just to be sure we don't leave any old cache line behind. That's very good, except that we do so using the *user* address. Under heavy load (swapping like crazy), we may end up in a situation where the page gets mapped in stage-2 while being unmapped from userspace by another CPU. At that point, the DC/IC instructions can generate a fault, which we handle with kvm->mmu_lock held. The box quickly deadlocks, user is unhappy. Instead, perform this invalidation through the kernel mapping, which is guaranteed to be present. The box is much happier, and so am I. Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Diffstat (limited to 'arch/arm/mach-lpc32xx')
0 files changed, 0 insertions, 0 deletions