1 From: jbeulich@novell.com
2 Subject: also register pirq for DomU (which doesn't use the IO-APIC code)
4 Patch-mainline: obsolete
6 Additionally make sure IRQ chip and handler aren't getting set twice
7 for an IRQ possibly in use by more than one device.
9 --- head-2009-02-02.orig/arch/x86/pci/pcifront.c 2009-02-03 17:27:59.000000000 +0100
10 +++ head-2009-02-02/arch/x86/pci/pcifront.c 2009-02-03 11:22:28.000000000 +0100
12 #include <linux/init.h>
13 #include <linux/pci.h>
15 +#include <xen/evtchn.h>
18 static int pcifront_enable_irq(struct pci_dev *dev)
21 pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq);
22 + evtchn_register_pirq(irq);
26 --- head-2009-02-02.orig/drivers/xen/core/evtchn.c 2009-01-14 15:16:43.000000000 +0100
27 +++ head-2009-02-02/drivers/xen/core/evtchn.c 2009-02-03 17:34:44.000000000 +0100
28 @@ -1561,7 +1561,7 @@ core_initcall(evtchn_register);
29 void evtchn_register_pirq(int irq)
31 BUG_ON(irq < PIRQ_BASE || irq - PIRQ_BASE > NR_PIRQS);
32 - if (identity_mapped_irq(irq))
33 + if (identity_mapped_irq(irq) || type_from_irq(irq) != IRQT_UNBOUND)
35 irq_info[irq] = mk_irq_info(IRQT_PIRQ, irq, 0);
36 set_irq_chip_and_handler_name(irq, &pirq_chip, handle_level_irq,