]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blame - src/patches/xen-passthrough-fix.patch
Updated igmpproxy to 0.1.
[people/pmueller/ipfire-2.x.git] / src / patches / xen-passthrough-fix.patch
CommitLineData
00e5a55c
BS
1From: jbeulich@novell.com
2Subject: also register pirq for DomU (which doesn't use the IO-APIC code)
3References: bnc#463596
4Patch-mainline: obsolete
5
6Additionally make sure IRQ chip and handler aren't getting set twice
7for 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,