KVM: x86: deliver phys lowest-prio
authorRadim Krčmář <rkrcmar@redhat.com>
Thu, 27 Nov 2014 19:03:11 +0000 (20:03 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 4 Dec 2014 14:29:06 +0000 (15:29 +0100)
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>
arch/x86/kvm/lapic.c

index f6184f1f13c329e20774df2d35948116f0b00b15..541e17865e63b6982af6b61ea5a1646b956440cd 100644 (file)
@@ -693,8 +693,6 @@ bool kvm_irq_delivery_to_apic_fast(struct kvm *kvm, struct kvm_lapic *src,
        ret = true;
 
        if (irq->dest_mode == 0) { /* physical mode */
-               if (irq->delivery_mode == APIC_DM_LOWEST)
-                       goto out;
                dst = &map->phys_map[irq->dest_id & 0xff];
        } else {
                u32 mda = irq->dest_id << (32 - map->ldr_bits);