diff options
author | Guillem Jover <guillem@debian.org> | 2006-02-02 04:06:11 +0000 |
---|---|---|
committer | Guillem Jover <guillem@debian.org> | 2006-02-02 04:06:11 +0000 |
commit | 27e0cc4c26b1f1ce8712e62985243ba180c7b6f6 (patch) | |
tree | bcf0fb7f3a59e91bf887b7d049ec3c491041236a /debian/patches | |
parent | 83e04053d46ef33d3434fc5ca07c246a82aeb4c4 (diff) |
* Do not allow PCI IRQ's higher than 16.
- debian/patches/patches/24_pci_irq_fix.patch: New file.
Thanks to Gianluca Guida <glguida@gmail.com>.
Diffstat (limited to 'debian/patches')
-rw-r--r-- | debian/patches/24_pci_irq_fix.patch | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/debian/patches/24_pci_irq_fix.patch b/debian/patches/24_pci_irq_fix.patch new file mode 100644 index 0000000..21c961c --- /dev/null +++ b/debian/patches/24_pci_irq_fix.patch @@ -0,0 +1,36 @@ +#DPATCHLEVEL=1 + +My laptop's motherboard set its RTL8139 NIC IRQ at a value that is not +included in the range 0<=x<16 and it's not 255. + +GNU Mach can't handle that, and when I try a 'devprobe eth0' I get a +panic due to a failed assert (irq < 16). This patch tell GNU Mach to +ignore this kind of IRQ. + +The real solution for this problem would be an PCI IRQ Router, which +is what I am going to port/implement in Mach soon. For now, this patch +helps by both removing the failed assert and by noticing the user that +the device is not being used for unassigned IRQ. + + +2006-01-28 Gianluca Guida <glguida@gmail.com> + + * linux/src/drivers/net/pci-scan.c (pci_drv_register): Skip device + if we are getting an invalid IRQ >= 16 and different from 255 (it + happens in some motherboard). + + +diff -ru gnumach-vanilla/linux/src/drivers/net/pci-scan.c gnumach-irqpciquickfix/linux/src/drivers/net/pci-scan.c +--- gnumach-vanilla/linux/src/drivers/net/pci-scan.c 2006-01-22 16:54:41.000000000 +0100 ++++ gnumach-irqpciquickfix/linux/src/drivers/net/pci-scan.c 2006-01-28 06:19:58.000000000 +0100 +@@ -347,7 +347,7 @@ + pci_tbl[chip_idx].name, pciaddr, irq); + + if ( ! (pci_flags & PCI_UNUSED_IRQ) && +- (irq == 0 || irq == 255)) { ++ (irq == 0 || irq >= 16)) { + if (pci_bus == 32) /* Broken CardBus activation. */ + printk(KERN_WARNING "Resources for CardBus device '%s' have" + " not been allocated.\n" + + |