]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/xen.git/commitdiff
Revert "x86/IO-APIC: fix setup of Xen internally used IRQs"
authorJan Beulich <jbeulich@suse.com>
Fri, 13 Nov 2015 14:39:57 +0000 (15:39 +0100)
committerJan Beulich <jbeulich@suse.com>
Fri, 13 Nov 2015 14:39:57 +0000 (15:39 +0100)
This reverts commit 1126b40892ab56cb13c3cae5822bf3a18a689ffb,
as it breaks (at least) x2apic systems.

xen/arch/x86/io_apic.c
xen/arch/x86/smpboot.c

index 464647ffb482fc31f312dc1518e515f017008a11..f8c8e559d05f7bda953bc33b3cf43d142872fcef 100644 (file)
@@ -2201,7 +2201,6 @@ int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level, int a
 {
     struct irq_desc *desc = irq_to_desc(irq);
     struct IO_APIC_route_entry entry;
-    cpumask_t mask;
     unsigned long flags;
     int vector;
 
@@ -2221,6 +2220,7 @@ int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level, int a
 
     entry.delivery_mode = INT_DELIVERY_MODE;
     entry.dest_mode = INT_DEST_MODE;
+    SET_DEST(entry, logical, cpu_mask_to_apicid(TARGET_CPUS));
     entry.trigger = edge_level;
     entry.polarity = active_high_low;
     entry.mask  = 1;
@@ -2236,9 +2236,6 @@ int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level, int a
         return vector;
     entry.vector = vector;
 
-    cpumask_and(&mask, desc->arch.cpu_mask, TARGET_CPUS);
-    SET_DEST(entry, logical, cpu_mask_to_apicid(&mask));
-
     apic_printk(APIC_DEBUG, KERN_DEBUG "IOAPIC[%d]: Set PCI routing entry "
                "(%d-%d -> %#x -> IRQ %d Mode:%i Active:%i)\n", ioapic,
                mp_ioapics[ioapic].mpc_apicid, pin, entry.vector, irq,
index 1d884afde207caf12558fc912ff6e485d3063c7e..dabc929d4c24210e9f717fa4807e63638baa0d9c 100644 (file)
@@ -1084,7 +1084,7 @@ void __init smp_intr_init(void)
         vector = alloc_hipriority_vector();
         per_cpu(vector_irq, cpu)[vector] = irq;
         irq_to_desc(irq)->arch.vector = vector;
-        cpumask_setall(irq_to_desc(irq)->arch.cpu_mask);
+        cpumask_copy(irq_to_desc(irq)->arch.cpu_mask, &cpu_online_map);
     }
 
     /* Direct IPI vectors. */