• Paolo Bonzini's avatar
    KVM: ioapic: try to recover if pending_eoi goes out of range · 4009b249
    Paolo Bonzini authored
    The RTC tracking code tracks the cardinality of rtc_status.dest_map
    into rtc_status.pending_eoi.  It has some WARN_ONs that trigger if
    pending_eoi ever becomes negative; however, these do not do anything
    to recover, and it bad things will happen soon after they trigger.
    
    When the next RTC interrupt is triggered, rtc_check_coalesced() will
    return false, but ioapic_service will find pending_eoi != 0 and
    do a BUG_ON.  To avoid this, should pending_eoi ever be nonzero,
    call kvm_rtc_eoi_tracking_restore_all to recompute a correct
    dest_map and pending_eoi.
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    4009b249
ioapic.c 15.8 KB