Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dd489240 authored by Paolo Bonzini's avatar Paolo Bonzini
Browse files

KVM: document memory barriers for kvm->vcpus/kvm->online_vcpus

parent c847fe88
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -427,6 +427,10 @@ struct kvm {

static inline struct kvm_vcpu *kvm_get_vcpu(struct kvm *kvm, int i)
{
	/* Pairs with smp_wmb() in kvm_vm_ioctl_create_vcpu, in case
	 * the caller has read kvm->online_vcpus before (as is the case
	 * for kvm_for_each_vcpu, for example).
	 */
	smp_rmb();
	return kvm->vcpus[i];
}
+5 −0
Original line number Diff line number Diff line
@@ -2206,6 +2206,11 @@ static int kvm_vm_ioctl_create_vcpu(struct kvm *kvm, u32 id)
	}

	kvm->vcpus[atomic_read(&kvm->online_vcpus)] = vcpu;

	/*
	 * Pairs with smp_rmb() in kvm_get_vcpu.  Write kvm->vcpus
	 * before kvm->online_vcpu's incremented value.
	 */
	smp_wmb();
	atomic_inc(&kvm->online_vcpus);