]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blob - src/patches/xen-passthrough-fix.patch
Bump vdradmin package version.
[people/pmueller/ipfire-2.x.git] / src / patches / xen-passthrough-fix.patch
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,