]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
kvm: x86: correctly reset dest_map->vector when restoring LAPIC state
authorPaolo Bonzini <pbonzini@redhat.com>
Wed, 14 Sep 2016 21:39:12 +0000 (23:39 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 24 Sep 2016 08:09:29 +0000 (10:09 +0200)
commit6c6f007505b33004ccbdb9ce9db203d5b2b36680
tree3c161ed99c28fb1073962696a894ac43e8a358c4
parent53ccff6d9ea747ff0f3c04777f8501938064a977
kvm: x86: correctly reset dest_map->vector when restoring LAPIC state

commit b0eaf4506f5f95d15d6731d72c0ddf4a2179eefa upstream.

When userspace sends KVM_SET_LAPIC, KVM schedules a check between
the vCPU's IRR and ISR and the IOAPIC redirection table, in order
to re-establish the IOAPIC's dest_map (the list of CPUs servicing
the real-time clock interrupt with the corresponding vectors).

However, __rtc_irq_eoi_tracking_restore_one was forgetting to
set dest_map->vectors.  Because of this, the IOAPIC did not process
the real-time clock interrupt EOI, ioapic->rtc_status.pending_eoi
got stuck at a non-zero value, and further RTC interrupts were
reported to userspace as coalesced.

Fixes: 9e4aabe2bb3454c83dac8139cf9974503ee044db
Fixes: 4d99ba898dd0c521ca6cdfdde55c9b58aea3cb3d
Cc: Joerg Roedel <jroedel@suse.de>
Cc: David Gilbert <dgilbert@redhat.com>
Reviewed-by: Radim Krčmář <rkrcmar@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/kvm/ioapic.c