• Sean Christopherson's avatar
    KVM: SVM: Ensure target pCPU is read once when signalling AVIC doorbell · 91b01895
    Sean Christopherson authored
    Ensure vcpu->cpu is read once when signalling the AVIC doorbell.  If the
    compiler rereads the field and the vCPU is migrated between the check and
    writing the doorbell, KVM would signal the wrong physical CPU.
    
    Functionally, signalling the wrong CPU in this case is not an issue as
    task migration means the vCPU has exited and will pick up any pending
    interrupts on the next VMRUN.  Add the READ_ONCE() purely to clean up the
    code.
    
    Opportunistically add a comment explaining the task migration behavior,
    and rename cpuid=>cpu to avoid conflating the CPU number with KVM's more
    common usage of CPUID.
    Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
    Message-Id: <20211009021236.4122790-3-seanjc@google.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    91b01895
avic.c 25.4 KB