KVM: X86: Use APIC_DEST_* macros properly in kvm_lapic_irq.dest_mode
[linux-2.6-microblaze.git] / arch / x86 / kvm / irq_comm.c
index 8ecd48d..22108ed 100644 (file)
@@ -52,8 +52,8 @@ int kvm_irq_delivery_to_apic(struct kvm *kvm, struct kvm_lapic *src,
        unsigned long dest_vcpu_bitmap[BITS_TO_LONGS(KVM_MAX_VCPUS)];
        unsigned int dest_vcpus = 0;
 
-       if (irq->dest_mode == 0 && irq->dest_id == 0xff &&
-                       kvm_lowest_prio_delivery(irq)) {
+       if (irq->dest_mode == APIC_DEST_PHYSICAL &&
+           irq->dest_id == 0xff && kvm_lowest_prio_delivery(irq)) {
                printk(KERN_INFO "kvm: apic: phys broadcast and lowest prio\n");
                irq->delivery_mode = APIC_DM_FIXED;
        }
@@ -114,7 +114,8 @@ void kvm_set_msi_irq(struct kvm *kvm, struct kvm_kernel_irq_routing_entry *e,
                irq->dest_id |= MSI_ADDR_EXT_DEST_ID(e->msi.address_hi);
        irq->vector = (e->msi.data &
                        MSI_DATA_VECTOR_MASK) >> MSI_DATA_VECTOR_SHIFT;
-       irq->dest_mode = (1 << MSI_ADDR_DEST_MODE_SHIFT) & e->msi.address_lo;
+       irq->dest_mode = kvm_lapic_irq_dest_mode(
+           !!((1 << MSI_ADDR_DEST_MODE_SHIFT) & e->msi.address_lo));
        irq->trig_mode = (1 << MSI_DATA_TRIGGER_SHIFT) & e->msi.data;
        irq->delivery_mode = e->msi.data & 0x700;
        irq->msi_redir_hint = ((e->msi.address_lo