KVM: MMU: handle large host sptes on invlpg/resync
The invlpg and sync walkers lack knowledge of large host sptes, descending to non-existant pagetable level. Stop at directory level in such case. Fixes SMP Windows XP with hugepages. Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
committed by
Avi Kivity
parent
3f353858c9
commit
8791723920
@@ -1007,7 +1007,7 @@ static int __mmu_unsync_walk(struct kvm_mmu_page *sp,
|
||||
for_each_unsync_children(sp->unsync_child_bitmap, i) {
|
||||
u64 ent = sp->spt[i];
|
||||
|
||||
if (is_shadow_present_pte(ent)) {
|
||||
if (is_shadow_present_pte(ent) && !is_large_pte(ent)) {
|
||||
struct kvm_mmu_page *child;
|
||||
child = page_header(ent & PT64_BASE_ADDR_MASK);
|
||||
|
||||
|
Reference in New Issue
Block a user