Re: [PATCH 0/3] fix emulation error on Windows bootup

From: Paolo Bonzini
Date: Wed Sep 11 2019 - 11:51:13 EST


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.

Paolo