diff options
-rw-r--r-- | arch/x86/kvm/mmu.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c index 0d094da49541..9e9285ae9b94 100644 --- a/arch/x86/kvm/mmu.c +++ b/arch/x86/kvm/mmu.c | |||
@@ -2811,6 +2811,13 @@ exit: | |||
2811 | static bool page_fault_can_be_fast(struct kvm_vcpu *vcpu, u32 error_code) | 2811 | static bool page_fault_can_be_fast(struct kvm_vcpu *vcpu, u32 error_code) |
2812 | { | 2812 | { |
2813 | /* | 2813 | /* |
2814 | * Do not fix the mmio spte with invalid generation number which | ||
2815 | * need to be updated by slow page fault path. | ||
2816 | */ | ||
2817 | if (unlikely(error_code & PFERR_RSVD_MASK)) | ||
2818 | return false; | ||
2819 | |||
2820 | /* | ||
2814 | * #PF can be fast only if the shadow page table is present and it | 2821 | * #PF can be fast only if the shadow page table is present and it |
2815 | * is caused by write-protect, that means we just need change the | 2822 | * is caused by write-protect, that means we just need change the |
2816 | * W bit of the spte which can be done out of mmu-lock. | 2823 | * W bit of the spte which can be done out of mmu-lock. |