]> git.baikalelectronics.ru Git - kernel.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)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 15 Sep 2016 16:00:32 +0000 (18:00 +0200)
commit93976c766d7714f0b17b1ebc274f1ef04a2885d7
tree3ac8bc41280e6db2809e844ee7ac173807b50fdc
parent78d0d129dd019bed6c7c4fc3306911415a407430
kvm: x86: correctly reset dest_map->vector when restoring LAPIC state

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: 7373ddff22799af6290597fa50e477167f8b5ada
Fixes: 55525399f4afbe121585a27acba877a93b882ffe
Cc: stable@vger.kernel.org
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>
arch/x86/kvm/ioapic.c