• Paolo Bonzini's avatar
    KVM: introduce kvm->created_vcpus · 6c7caebc
    Paolo Bonzini authored
    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: default avatarCornelia Huck <cornelia.huck@de.ibm.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    6c7caebc
kvm_main.c 89.2 KB