Re: [PATCH RESEND 3/3] KVM: SVM: Reenable handle_fastpath_set_msr_irqoff() after complete_interrupts()

From: Sean Christopherson
Date: Mon Sep 14 2020 - 11:53:01 EST


On Sat, Sep 12, 2020 at 08:15:46AM +0200, Paolo Bonzini wrote:
> The overall patch is fairly simple:
>
> diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
> index 03dd7bac8034..d6ce75e107c0 100644
> --- a/arch/x86/kvm/svm/svm.c
> +++ b/arch/x86/kvm/svm/svm.c
> @@ -2938,8 +2938,6 @@ static int handle_exit(struct kvm_vcpu *vcpu,
> fastpath_t exit_fastpath)
> if (npt_enabled)
> vcpu->arch.cr3 = svm->vmcb->save.cr3;
>
> - svm_complete_interrupts(svm);
> -
> if (is_guest_mode(vcpu)) {
> int vmexit;
>
> @@ -3504,7 +3502,6 @@ static __no_kcsan fastpath_t svm_vcpu_run(struct
> kvm_vcpu *vcpu)
> stgi();
>
> /* Any pending NMI will happen here */
> - exit_fastpath = svm_exit_handlers_fastpath(vcpu);
>
> if (unlikely(svm->vmcb->control.exit_code == SVM_EXIT_NMI))
> kvm_after_interrupt(&svm->vcpu);
> @@ -3537,6 +3534,9 @@ static __no_kcsan fastpath_t svm_vcpu_run(struct
> kvm_vcpu *vcpu)
> SVM_EXIT_EXCP_BASE + MC_VECTOR))
> svm_handle_mce(svm);
>
> + svm_complete_interrupts(svm);
> + exit_fastpath = svm_exit_handlers_fastpath(vcpu);
> +
> vmcb_mark_all_clean(svm->vmcb);
> return exit_fastpath;
> }
>
> so I will just squash everything.

The thought behind the multi-patch series was to allow automatically applying
the fix to the 5.8 stable tree without having to take on the risk of moving
svm_complete_interrupts().