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>
#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>
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;
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) &&
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 )