• Gleb Natapov's avatar
    KVM: Fix race in apic->pending_events processing · 299018f4
    Gleb Natapov authored
    apic->pending_events processing has a race that may cause INIT and
    SIPI
    processing to be reordered:
    
    vpu0:                            vcpu1:
    set INIT
                                   test_and_clear_bit(KVM_APIC_INIT)
                                      process INIT
    set INIT
    set SIPI
                                   test_and_clear_bit(KVM_APIC_SIPI)
                                      process SIPI
    
    At the end INIT is left pending in pending_events. The following patch
    fixes this by latching pending event before processing them.
    Signed-off-by: default avatarGleb Natapov <gleb@redhat.com>
    299018f4
lapic.c 46.6 KB