summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog3
-rw-r--r--debian/patches/24_pci_irq_fix.patch36
2 files changed, 39 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index 5c75971..6cec45c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -15,6 +15,9 @@ gnumach (1:20060201-1) UNRELEASED; urgency=low
- debian/patches/90_autoconf_autogen.patch: Likewise.
* Fix -H kernel command line argument to halt on panic. (Closes: #184624)
Thanks to Soeren D. Schulze <soeren.d.schulze@gmx.de>.
+ * 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>.
-- Guillem Jover <guillem@debian.org> Wed, 1 Feb 2006 23:21:59 +0200
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"
+
+