KVM: x86: use MDA for interrupt matching
authorRadim Krčmář <rkrcmar@redhat.com>
Thu, 12 Feb 2015 18:41:31 +0000 (19:41 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 8 Apr 2015 08:46:59 +0000 (10:46 +0200)
commit03d2249ea60818e97475ac529aa183cf130935bb
tree80e19d06b6a255f108434bbd362142ebe69a2292
parent19456060315cedc5595a47007f886369871dfbc5
KVM: x86: use MDA for interrupt matching

In mixed modes, we musn't deliver xAPIC IPIs like x2APIC and vice versa.
Instead of preserving the information in apic_send_ipi(), we regain it
by converting all destinations into correct MDA in the slow path.
This allows easier reasoning about subsequent matching.

Our kvm_apic_broadcast() had an interesting design decision: it didn't
consider IOxAPIC 0xff as broadcast in x2APIC mode ...
everything worked because IOxAPIC can't set that in physical mode and
logical mode considered it as a message for first 8 VCPUs.
This patch interprets IOxAPIC 0xff as x2APIC broadcast.

Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
Message-Id: <1423766494-26150-2-git-send-email-rkrcmar@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/lapic.c