summaryrefslogtreecommitdiffstats
path: root/arch/mips/kvm/mips.c
diff options
context:
space:
mode:
authorJames Hogan <james.hogan@imgtec.com>2016-12-06 15:59:43 +0100
committerJames Hogan <james.hogan@imgtec.com>2017-02-03 16:21:27 +0100
commitf9b11e51f89f6d2eca2ca8f41bb0ceb07c943e60 (patch)
treec4138efee7e3f28af17d439c8a79c98304b78eaf /arch/mips/kvm/mips.c
parentKVM: MIPS/MMU: Pass GPA PTE bits to KSeg0 GVA PTEs (diff)
downloadlinux-f9b11e51f89f6d2eca2ca8f41bb0ceb07c943e60.tar.xz
linux-f9b11e51f89f6d2eca2ca8f41bb0ceb07c943e60.zip
KVM: MIPS/MMU: Pass GPA PTE bits to mapped GVA PTEs
Propagate the GPA PTE protection bits on to the GVA PTEs on a mapped fault (except _PAGE_WRITE, and filtered by the guest TLB entry), rather than always overriding the protection. This allows dirty page tracking to work in mapped guest segments as a clear dirty bit in the GPA PTE will propagate to the GVA PTEs even when the guest TLB has the dirty bit set. Since the filtering of protection bits is now abstracted, if the buddy GVA PTE is also valid, we obtain the corresponding GPA PTE using a simple non-allocating walk and load that into the GVA PTE similarly (which may itself be invalid). Signed-off-by: James Hogan <james.hogan@imgtec.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: "Radim Krčmář" <rkrcmar@redhat.com> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: linux-mips@linux-mips.org Cc: kvm@vger.kernel.org
Diffstat (limited to 'arch/mips/kvm/mips.c')
0 files changed, 0 insertions, 0 deletions