1
linux/drivers/kvm
Avi Kivity d28c6cfbbc KVM: MMU: Fix hugepage pdes mapping same physical address with different access
The kvm mmu keeps a shadow page for hugepage pdes; if several such pdes map
the same physical address, they share the same shadow page.  This is a fairly
common case (kernel mappings on i386 nonpae Linux, for example).

However, if the two pdes map the same memory but with different permissions, kvm
will happily use the cached shadow page.  If the access through the more
permissive pde will occur after the access to the strict pde, an endless pagefault
loop will be generated and the guest will make no progress.

Fix by making the access permissions part of the cache lookup key.

The fix allows Xen pae to boot on kvm and run guest domains.

Thanks to Jeremy Fitzhardinge for reporting the bug and testing the fix.

Signed-off-by: Avi Kivity <avi@qumranet.com>
2007-05-03 10:52:27 +03:00
..
Kconfig [PATCH] KVM: Put KVM in a new Virtualization menu 2006-12-13 09:05:46 -08:00
kvm_main.c KVM: Handle writes to MCG_STATUS msr 2007-05-03 10:52:26 +03:00
kvm_svm.h KVM: Remove unused and write-only variables 2007-05-03 10:52:26 +03:00
kvm_vmx.h [PATCH] KVM: Replace __x86_64__ with CONFIG_X86_64 2006-12-13 09:05:46 -08:00
kvm.h KVM: MMU: Fix hugepage pdes mapping same physical address with different access 2007-05-03 10:52:27 +03:00
Makefile
mmu.c KVM: MMU: Fix hugepage pdes mapping same physical address with different access 2007-05-03 10:52:27 +03:00
paging_tmpl.h KVM: MMU: Fix hugepage pdes mapping same physical address with different access 2007-05-03 10:52:27 +03:00
segment_descriptor.h
svm.c KVM: SVM: forbid guest to execute monitor/mwait 2007-05-03 10:52:26 +03:00
svm.h KVM: SVM: forbid guest to execute monitor/mwait 2007-05-03 10:52:26 +03:00
vmx.c KVM: Hack real-mode segments on vmx from KVM_SET_SREGS 2007-05-03 10:52:26 +03:00
vmx.h [PATCH] kvm: vmx: handle triple faults by returning EXIT_REASON_SHUTDOWN to userspace 2007-02-12 09:48:40 -08:00
x86_emulate.c [PATCH] KVM: x86 emulator: fix bit string instructions 2007-01-23 07:52:06 -08:00
x86_emulate.h [PATCH] KVM: Replace __x86_64__ with CONFIG_X86_64 2006-12-13 09:05:46 -08:00