aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/lapic.c
diff options
context:
space:
mode:
authorRadim Krčmář <rkrcmar@redhat.com>2014-11-27 14:03:11 -0500
committerPaolo Bonzini <pbonzini@redhat.com>2014-12-04 09:29:06 -0500
commit085563fb043c29cc09e5ec5e21a7f6bb519d91e2 (patch)
tree09e3b181b5d12727cc72e9a211ed45900eddd1a7 /arch/x86/kvm/lapic.c
parent698f9755d9c061865aecc52f590270ba5bbc1442 (diff)
KVM: x86: deliver phys lowest-prio
Physical mode can't address more than one APIC, but lowest-prio is allowed, so we just reuse our paths. SDM 10.6.2.1 Physical Destination: Also, for any non-broadcast IPI or I/O subsystem initiated interrupt with lowest priority delivery mode, software must ensure that APICs defined in the interrupt address are present and enabled to receive interrupts. We could warn on top of that. Signed-off-by: Radim Krčmář <rkrcmar@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86/kvm/lapic.c')
-rw-r--r--arch/x86/kvm/lapic.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
index f6184f1f13c3..541e17865e63 100644
--- a/arch/x86/kvm/lapic.c
+++ b/arch/x86/kvm/lapic.c
@@ -693,8 +693,6 @@ bool kvm_irq_delivery_to_apic_fast(struct kvm *kvm, struct kvm_lapic *src,
693 ret = true; 693 ret = true;
694 694
695 if (irq->dest_mode == 0) { /* physical mode */ 695 if (irq->dest_mode == 0) { /* physical mode */
696 if (irq->delivery_mode == APIC_DM_LOWEST)
697 goto out;
698 dst = &map->phys_map[irq->dest_id & 0xff]; 696 dst = &map->phys_map[irq->dest_id & 0xff];
699 } else { 697 } else {
700 u32 mda = irq->dest_id << (32 - map->ldr_bits); 698 u32 mda = irq->dest_id << (32 - map->ldr_bits);