Subject: Re: linux-next: manual merge of the kvm tree with the rcu tree

From: Stephen Rothwell <[email-masked]>
Date: Mon, 18 May 2020 15:46:45 +1000

Hi all,

On Mon, 18 May 2020 15:42:40 +1000 Stephen Rothwell <[email-masked]> wrote:
> 
> Today's linux-next merge of the kvm tree got a conflict in:
> 
>   arch/x86/kvm/svm/svm.c
> 
> between commit:
> 
>   9f24847d8fdb ("kvm/svm: Disable KCSAN for svm_vcpu_run()")
> 
> from the rcu tree and commits:
> 
>   a9ab13ff6e84 ("KVM: X86: Improve latency for single target IPI fastpath")
>   404d5d7bff0d ("KVM: X86: Introduce more exit_fastpath_completion enum values")
> 
> from the kvm tree.
> 
> I fixed it up (see below) and can carry the fix as necessary. This
> is now fixed as far as linux-next is concerned, but any non trivial
> conflicts should be mentioned to your upstream maintainer when your tree
> is submitted for merging.  You may also want to consider cooperating
> with the maintainer of the conflicting tree to minimise any particularly
> complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc arch/x86/kvm/svm/svm.c
index dca2bdbe34a7,4e9cd2a73ad0..000000000000
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@@ -3279,10 -3315,21 +3315,21 @@@ static void svm_cancel_injection(struc
        svm_complete_interrupts(svm);
  }

+ static fastpath_t svm_exit_handlers_fastpath(struct kvm_vcpu *vcpu)
+ {
+       if (!is_guest_mode(vcpu) &&
+           to_svm(vcpu)->vmcb->control.exit_code == SVM_EXIT_MSR &&
+           to_svm(vcpu)->vmcb->control.exit_info_1)
+               return handle_fastpath_set_msr_irqoff(vcpu);
+
+       return EXIT_FASTPATH_NONE;
+ }
+
  void __svm_vcpu_run(unsigned long vmcb_pa, unsigned long *regs);

- static __no_kcsan void svm_vcpu_run(struct kvm_vcpu *vcpu)
 -static fastpath_t svm_vcpu_run(struct kvm_vcpu *vcpu)
++static __no_kcsan fastpath_t svm_vcpu_run(struct kvm_vcpu *vcpu)
  {
+       fastpath_t exit_fastpath;
        struct vcpu_svm *svm = to_svm(vcpu);

        svm->vmcb->save.rax = vcpu->arch.regs[VCPU_REGS_RAX];
s