diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2014-03-28 20:41:51 +0100 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2014-04-04 17:17:24 +0200 |
commit | 4009b2499eee26c7f413073300d124a37765dfca (patch) | |
tree | 05b431aec59a1d17fbbd9d29c46fd1e51831e260 /arch/x86 | |
parent | 5678de3f15010b9022ee45673f33bcfc71d47b60 (diff) | |
download | linux-4009b2499eee26c7f413073300d124a37765dfca.tar.gz linux-4009b2499eee26c7f413073300d124a37765dfca.tar.bz2 linux-4009b2499eee26c7f413073300d124a37765dfca.zip |
KVM: ioapic: try to recover if pending_eoi goes out of range
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: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86')
0 files changed, 0 insertions, 0 deletions