]>
Commit | Line | Data |
---|---|---|
00e5a55c BS |
1 | From: jbeulich@novell.com |
2 | Subject: also register pirq for DomU (which doesn't use the IO-APIC code) | |
3 | References: bnc#463596 | |
4 | Patch-mainline: obsolete | |
5 | ||
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. | |
8 | ||
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 | |
11 | @@ -8,12 +8,14 @@ | |
12 | #include <linux/init.h> | |
13 | #include <linux/pci.h> | |
14 | #include <asm/acpi.h> | |
15 | +#include <xen/evtchn.h> | |
16 | #include "pci.h" | |
17 | ||
18 | static int pcifront_enable_irq(struct pci_dev *dev) | |
19 | { | |
20 | u8 irq; | |
21 | pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq); | |
22 | + evtchn_register_pirq(irq); | |
23 | dev->irq = irq; | |
24 | ||
25 | return 0; | |
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) | |
30 | { | |
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) | |
34 | return; | |
35 | irq_info[irq] = mk_irq_info(IRQT_PIRQ, irq, 0); | |
36 | set_irq_chip_and_handler_name(irq, &pirq_chip, handle_level_irq, |