summaryrefslogtreecommitdiff
path: root/debian/patches/24_pci_irq_fix.patch
blob: 21c961cf5e62b2094e89e831ec0431dbd5494fe0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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"