]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: introduce kvm->created_vcpus
authorPaolo Bonzini <pbonzini@redhat.com>
Mon, 13 Jun 2016 12:48:25 +0000 (14:48 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 15 Jun 2016 22:05:00 +0000 (00:05 +0200)
commita901dc9962c5dd2b99f2c632eb03fdac9d73867d
tree0d804b1b15e565ca3286f82a6cd219e9e3d00828
parent962a8645d2a907e7451be849c8a4d733cb6b977f
KVM: introduce kvm->created_vcpus

The race between creating the irqchip and the first VCPU is
currently fixed by checking the presence of an irqchip before
updating kvm->online_vcpus, and undoing the whole VCPU creation
if someone created the irqchip in the meanwhile.

Instead, introduce a new field in struct kvm that will count VCPUs
under a mutex, without the atomic access and memory ordering that we
need elsewhere to protect the vcpus array.  This also plugs the race
and is more easily applicable in all similar circumstances.

Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
include/linux/kvm_host.h
virt/kvm/kvm_main.c