On 11/09/19 21:53, Sean Christopherson wrote: > On Wed, Sep 11, 2019 at 05:51:05PM +0200, Paolo Bonzini wrote: >> On 27/08/19 15:07, Jan Dakinevich wrote: >>> This series intended to fix (again) a bug that was a subject of the >>> following change: >>> >>> 6ea6e84 ("KVM: x86: inject exceptions produced by x86_decode_insn") >>> >>> Suddenly, that fix had a couple mistakes. First, ctxt->have_exception was >>> not set if fault happened during instruction decoding. Second, returning >>> value of inject_emulated_instruction was used to make the decision to >>> reenter guest, but this could happen iff on nested page fault, that is not >>> the scope where this bug could occur. >>> >>> However, I have still deep doubts about 3rd commit in the series. Could >>> you please, make me an advise if it is the correct handling of guest page >>> fault? >>> >>> Jan Dakinevich (3): >>> KVM: x86: fix wrong return code >>> KVM: x86: set ctxt->have_exception in x86_decode_insn() >>> KVM: x86: always stop emulation on page fault >>> >>> arch/x86/kvm/emulate.c | 4 +++- >>> arch/x86/kvm/x86.c | 4 +++- >>> 2 files changed, 6 insertions(+), 2 deletions(-) >>> >> >> Queued, thanks. I added the WARN_ON_ONCE that Sean suggested. > > Which version did you queue? It sounds like you queued v1, which breaks > VMware backdoor emulation due to incorrect patch ordering. v3[*] fixes > the ordering issue and adds the WARN_ON_ONCE. I applied v1 with all the fixes, then found out v3 existed and replaced with it (but still added a comment). Paolo