diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-07-19 10:17:12 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-07-19 10:17:12 -0700 |
commit | b8a33fc7258f9e6e42b15571d0284b7c0ef0d0a9 (patch) | |
tree | d96631dd8fdfb1d50d59335c1e31479cdb35f7ee /arch | |
parent | b7356abb9fb952d385caef6d58d7e7aff17a478e (diff) | |
parent | 1c118b8226922d225a7df4127926ed2a2d73baaf (diff) | |
download | linux-stable-b8a33fc7258f9e6e42b15571d0284b7c0ef0d0a9.tar.gz linux-stable-b8a33fc7258f9e6e42b15571d0284b7c0ef0d0a9.tar.bz2 linux-stable-b8a33fc7258f9e6e42b15571d0284b7c0ef0d0a9.zip |
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
Pull KVM fix from Paolo Bonzini:
"This single patch fixes a regression caused by one of the
optimizations introduced in 3.11, which is generally visible only on
AMD processors"
* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
KVM: MMU: avoid fast page fault fixing mmio page fault
Diffstat (limited to 'arch')
-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: static bool page_fault_can_be_fast(struct kvm_vcpu *vcpu, u32 error_code) { /* + * Do not fix the mmio spte with invalid generation number which + * need to be updated by slow page fault path. + */ + if (unlikely(error_code & PFERR_RSVD_MASK)) + return false; + + /* * #PF can be fast only if the shadow page table is present and it * is caused by write-protect, that means we just need change the * W bit of the spte which can be done out of mmu-lock. |