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

From: Stephen Rothwell
Date: Tue Apr 21 2020 - 23:53:50 EST


Hi all,

Today's linux-next merge of the kvm tree got a conflict in:

arch/x86/kvm/svm/svm.c

between commit:

c60e60a23f24 ("kvm/svm: Disable KCSAN for svm_vcpu_run()")

from the rcu tree and commit:

a9ab13ff6e84 ("KVM: X86: Improve latency for single target IPI fastpath")

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 b303ae0803d2,a6f4e1bdb045..000000000000
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@@ -3276,10 -3299,21 +3299,21 @@@ static void svm_cancel_injection(struc
svm_complete_interrupts(svm);
}

+ static enum exit_fastpath_completion 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 enum exit_fastpath_completion svm_vcpu_run(struct kvm_vcpu *vcpu)
++static __no_kcsan enum exit_fastpath_completion svm_vcpu_run(struct kvm_vcpu *vcpu)
{
+ enum exit_fastpath_completion exit_fastpath;
struct vcpu_svm *svm = to_svm(vcpu);

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

Attachment: pgpDYEs6T6bRD.pgp
Description: OpenPGP digital signature