diff options
Diffstat (limited to 'arch/x86/kvm/paging_tmpl.h')
-rw-r--r-- | arch/x86/kvm/paging_tmpl.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h index 6dd08e096e24..e9fbaa44d444 100644 --- a/arch/x86/kvm/paging_tmpl.h +++ b/arch/x86/kvm/paging_tmpl.h | |||
@@ -310,8 +310,11 @@ static int FNAME(shadow_walk_entry)(struct kvm_shadow_walk *_sw, | |||
310 | if (is_shadow_present_pte(*sptep) && !is_large_pte(*sptep)) | 310 | if (is_shadow_present_pte(*sptep) && !is_large_pte(*sptep)) |
311 | return 0; | 311 | return 0; |
312 | 312 | ||
313 | if (is_large_pte(*sptep)) | 313 | if (is_large_pte(*sptep)) { |
314 | set_shadow_pte(sptep, shadow_trap_nonpresent_pte); | ||
315 | kvm_flush_remote_tlbs(vcpu->kvm); | ||
314 | rmap_remove(vcpu->kvm, sptep); | 316 | rmap_remove(vcpu->kvm, sptep); |
317 | } | ||
315 | 318 | ||
316 | if (level == PT_DIRECTORY_LEVEL && gw->level == PT_DIRECTORY_LEVEL) { | 319 | if (level == PT_DIRECTORY_LEVEL && gw->level == PT_DIRECTORY_LEVEL) { |
317 | metaphysical = 1; | 320 | metaphysical = 1; |