Skip to contentSkip to conversation

2.4.17 tulip multiport-patch

DISCUSSION Christoph Dworzak 2 participants 2 messages Jan 15, 2002

lore
Share & tools
lore
#0 lore raw

Hi

After lots of Headscratching, I found this little bug:

replace line 1642 of tulip_core.c:

		    irq = last_irq;

with

		    dev->irq = irq = last_irq;

It's a hack for Multiport-NICs where only the first one contains an EEPROM (I have a Adaptec ANA-6944A/TX). It puts other ports on the same irq as the first one, but it forgot to actually set it in the dev-structure...

With this correction my Firewall works like a champ now (before it crashed immediately when activating the second port of the multiport-nic).

While searching for this Bug, I also tried the de4x5-driver. It worked, but with troubles. It sets the MAC-Address of all the other ports to the MAC of the first port + 1. ALL of them to the same MAC!
I tried to find out why, but I didn't find this in the code (I found where it adds this 1, but didn't see why it doesn't increase it further for further ports...)

Don't know if this is related:
While using the de4x5-driver, my system-load climbed steadily up. After 3 Days it was at 99.5%.

Top didn't show any processes using this time, but the Computer was reaaaaaly slow (pressing a key took several seconds until it appeared on the console...)

This was repeatable. -> Reboot every other day :(

If this happens again, how do I find out what's using the CPU? (I tried top, vmstat, free, but nothing unusual showed up beside the system-% in top).

bye
dworz

Config (two Computers A and B):
A Amd-k6/300, 64MB
B Dual PIII-600, 512MB
both with ANA-6944A/TX + 2 other tulips
both RH7.2 with all updates as of 1.1.02 kernel 2.4.9-13 (the tulip-bug is still in 2.4.18pre3)

Computer B would not slow down with DE4x5, but maybe it wasn't running long enough yet...
Both crashed with tulip.

#1 lore raw
Quoted 9 lines · Christoph Dworzak

After lots of Headscratching, I found this little bug:

replace line 1642 of tulip_core.c:

		    irq = last_irq;

with

		    dev->irq = irq = last_irq;

Hmmm, a little bit of bad conversion here. The tulip.c code follows this section by

     dev->irq = irq;

a few lines later.

Quoted 2 lines

While using the de4x5-driver, my system-load climbed steadily up. After 3 Days it was at 99.5%.

Check the interrupt count in /dev/interrupts.

Quoted 1 line

This was repeatable. -> Reboot every other day :(

Donald Becker [email protected]
Scyld Computing Corporation http://www.scyld.com
410 Severn Ave. Suite 210 Second Generation Beowulf Clusters
Annapolis MD 21403 410-990-9993