]> xenbits.xensource.com Git - xen.git/commitdiff
x86: IO-APIC code has no dependency on PCI
authorJan Beulich <jbeulich@suse.com>
Thu, 22 Sep 2011 17:31:02 +0000 (18:31 +0100)
committerJan Beulich <jbeulich@suse.com>
Thu, 22 Sep 2011 17:31:02 +0000 (18:31 +0100)
The IRQ handling code requires pcidevs_lock to be held only for MSI
interrupts.

As the handling of which was now fully moved into msi.c (i.e. while
applying fine without, the patch needs to be applied after the one
titled "x86: split MSI IRQ chip"), io_apic.c now also doesn't need to
include PCI headers anymore.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
xen/arch/x86/io_apic.c
xen/arch/x86/irq.c

index a7081570cafacca1bed709695e2e5abb8e9c216d..b0249c532927b331e611bae0a43875f8aea35650 100644 (file)
@@ -27,8 +27,6 @@
 #include <xen/delay.h>
 #include <xen/sched.h>
 #include <xen/acpi.h>
-#include <xen/pci.h>
-#include <xen/pci_regs.h>
 #include <xen/keyhandler.h>
 #include <asm/mc146818rtc.h>
 #include <asm/smp.h>
@@ -2491,12 +2489,10 @@ int ioapic_guest_write(unsigned long physbase, unsigned int reg, u32 val)
 
         add_pin_to_irq(irq, apic, pin);
     }
-    spin_lock(&pcidevs_lock);
     spin_lock(&dom0->event_lock);
     ret = map_domain_pirq(dom0, pirq, irq,
             MAP_PIRQ_TYPE_GSI, NULL);
     spin_unlock(&dom0->event_lock);
-    spin_unlock(&pcidevs_lock);
     if ( ret < 0 )
         return ret;
 
index 9606ae2c1ebfce25cc68eaa54cfe1da404d83927..e0b2d0137966ad9999b053e4557ad0899a95fa05 100644 (file)
@@ -1662,10 +1662,7 @@ int map_domain_pirq(
     struct pirq *info;
     struct irq_desc *desc;
     unsigned long flags;
-    struct msi_desc *msi_desc;
-    struct pci_dev *pdev = NULL;
 
-    ASSERT(spin_is_locked(&pcidevs_lock));
     ASSERT(spin_is_locked(&d->event_lock));
 
     if ( !IS_PRIV(current->domain) &&
@@ -1708,6 +1705,10 @@ int map_domain_pirq(
     if ( type == MAP_PIRQ_TYPE_MSI )
     {
         struct msi_info *msi = (struct msi_info *)data;
+        struct msi_desc *msi_desc;
+        struct pci_dev *pdev;
+
+        ASSERT(spin_is_locked(&pcidevs_lock));
 
         ret = -ENODEV;
         if ( !cpu_has_apic )