Skip to content
  • Keir Fraser's avatar
    x86: fix next->vcpu_dirty_cpumask checking in context_switch() · 027b424b
    Keir Fraser authored
    
    
    There was a timing window where flush_tlb_mask() could be called with
    an empty mask (triggering a WARN_ON() in send_IPI_mask_flat() along
    with APIC errors) because rather than using the already taken snapshot
    of next's vcpu_dirty_cpumask struct vcpu's field was used directly,
    which can get its only bit cleared by remote CPUs.
    
    Replacing the structure field's use by the local variable then made
    the inner cpus_empty() check completely redundant with the one in the
    surrounding if()'s condition.
    
    Signed-off-by: default avatarJan Beulich <jbeulich@novell.com>
    027b424b