View previous topic :: View next topic |
Author |
Message |
Kimmo_S n00b

Joined: 10 Apr 2004 Posts: 45
|
Posted: Sat Apr 17, 2004 3:19 pm Post subject: 3c509 forces itself into an IRQ conflict |
|
|
I'm having an IRQ conflict.
When I boot Debian, vanilla kernel 2.4.22, everything is fine.
eth0 3c509 is IRQ 9, IO 0x210
eth1 3c509 is IRQ 5, IO 0x300
hisax HFC-PCI ISDN is IRQ 12
Adaptec AHA152x is IRQ11, IO 0x340
All cards work flawlessly and as expected. modules.conf has line "options 3c509 irq=9"
When I boot Gentoo on the same machine, eth0 3c509 steals IRQ 12, no matter what I do. Compiling 3c509 in and giving a kernel command-line as described in linux/Documentation/networking/3c509.txt didn't help. All logs have that it takes IRQ 12 (or is found at IRQ 12). Giving irq=9 as a parameter doesn't help if I manually run modprobe. I've also tried including "3c509 irq=9" into Gentoo's /etc/modules.autoload.d/kernel-2.6 to no avail. It just doesn't care that I'm asking it to try IRQ 9. Booting back to Debian, eth0 is found at irq=9, and everything is fine again.
Debian doesn't have ISAPnP package installed, and when I installed it on Gentoo, pnpdump found nothing. So I guess that I have set both 3c509 cards to use non-PnP initalisation. Gentoo has 2.6.4 kernel. The machine is a Pentium 133MHz with Intel HX chipset and PIIX3 IDE controller.
I had modprobe segfault a few times when I had 3c509 in /etc/modules.autoload.d/kernel-2.6 but now it just says "SIOCSIFFLAGS: Device or resource busy" if I try to do something. 3c509 doesn't appear in /proc/interrupts, except when I remove hisax from /etc/modules.autoload.d/kernel-2.6, but then it appears as IRQ 12, which is the whole problem. |
|
Back to top |
|
 |
Kimmo_S n00b

Joined: 10 Apr 2004 Posts: 45
|
Posted: Sun Apr 18, 2004 6:44 am Post subject: |
|
|
In Debian, the cards are found at IRQ 12 and 5 on boot, according to logs, but ifconfig says they are IRQ 9 and 5, and they work as expected. I can remove and insert the module as many times as I want when the corresponding eth interface is down. Every time it finds cards at IRQ 12 and 5, and every time "ifconfig up eth0 ; ifconfig" shows the card at IRQ 9, and the other (eth1) at IRQ 5. I can switch the cards (interfaces) by "modprobe 3c509 irq=5,9", and I can set up an IRQ conflict by "modprobe 3c509 irq=12,5", and eth0 then refuses to come up, but after "rmmod 3c509" I can again "modprobe 3c509", the cards are found at 12 and 5, and ifconfig again says IRQ 9 and 5, and everything works.
I found out that /etc/modules.conf made the first card IRQ 9, and with an "option" line there removed, I had to specify irq=9 to modprobe, or the card went to IRQ 12, and "ifconfig eth0 up" resulted in "SIOCSIFFLAGS: Device or resource busy".
With Gentoo, once someone or something modprobes 3c509, it is there and can't be removed. And it never obeys any irq parameters. By removing hisax I was able to do "ifconfig eth0 up" (with no error messages), but ifconfig said eth0 is IRQ 12, /proc/interrupts showed 0 interrupts for it, and no traffic could go in or out.
I Googled for kernel changelogs. There was a mention of 3c509, like "3c509: FIXED" in some rc of 2.6.5, so I installed the newest sys-apps/development-sources, which is 2.6.6-rc1, but nothing changed. |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|