summaryrefslogtreecommitdiff
path: root/debian/patches
diff options
context:
space:
mode:
authorGuillem Jover <guillem@debian.org>2006-02-02 04:06:11 +0000
committerGuillem Jover <guillem@debian.org>2006-02-02 04:06:11 +0000
commit27e0cc4c26b1f1ce8712e62985243ba180c7b6f6 (patch)
treebcf0fb7f3a59e91bf887b7d049ec3c491041236a /debian/patches
parent83e04053d46ef33d3434fc5ca07c246a82aeb4c4 (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.patch36
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"
+
+