]> 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)
commitf6753525770f7169c2b35669ffa48effd5ba873b
tree3ac8bc41280e6db2809e844ee7ac173807b50fdc
parentb197223b9bf96b5bb160e652387854ad3f69b917
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: caca641dd18b1ad216de7da59be047216951b917
Fixes: 6d6edae072825284911b9414205fa4ef8d0b88a1
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