Messages in this thread | | | From | Kimmo Sundqvist <> | Subject | Re: modprobe 3c509 segfaults | Date | Sun, 18 Apr 2004 15:55:05 +0300 |
| |
On Saturday 17 April 2004 20:55, Andrew Morton wrote:
> Seems that we used to unconditionally link the device into the > el3_root_devchain in el3_common_init(), but that was removed, and we now > conditionally link it, denendent upon sone ifdefs which you presumably have > not set.
> Does this fix it up?
Now I can use modprobe and then remove the module as many times as I want, but some a bit odd behavior appeared. Some details are repeated from my original message:
Two 3c509 cards, a BNC/AUI one, configured with 3com's setup utility (3c5x9cfg.exe) to IRQ 9, port 0x210, and a RJ-45 one, configured to IRQ 5, port 0x300. Both use non-pnp initalisation, and don't say anything if I do pnpdump.
Under Debian (kernel 2.4.22), the cards were probed IRQ 12 and 5, but ifconfig said IRQ 9 and 5 if I had told modprobe "irq=9,5", and both cards worked perfectly.
Under Gentoo, kernel 2.6.6-rc1 and your patch applied (I couldn't figure out how to correctly use patch, so I deleted the two lines in 3c509.c manually), the BNC card is found at IRQ 12 and RJ-45 card at IRQ 5 according to /var/log/messages. And this is the same with every single run of insmod.
1. modprobe (or insmod) with no irq given: eth0 doesn't come up, Device or resource busy eth1 comes up with IRQ 5, port 0x300, and appears working
2. modprobe (or insmod) with irq=9,5 given: eth0 comes up with IRQ _5_, port 0x210, and for some odd reason, works eth1: Device or resource busy
3. same as the above, (irq=9,5) but eth1 up first eth1 comes up with IRQ 5, port 0x300, and appears working eth0: Device or resource busy
4. modprobe (or insmod) with irq=5,9 given: both come up and work as expected eth0 is IRQ 9, eth1 is IRQ 5
It is documented that the order of detection is arbitrary. Both systems have the card at IRQ 9 (IRQ 12 in logs) always found first, but Gentoo (kernel 2.6.6-rc1) needs irq=5,9 while Debian (vanilla kernel 2.4.22) needs irq=9,5.
Biggest thing left to understand is, why does the card work in try 2? I know for sure that eth0 of try 2 is eth0 of try 3 (the BNC card), so we have different cards working there.
There is a network only at the BNC connector of one card, so by "appears working" I mean that the RJ-45 card comes up and generates interrupts, takes an IP address and transmits pings, but - as is expected - doesn't get any replies.
-Kimmo S. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |