if_sk.c patch - if_sk.patch.gz (0/1)

Joerg Anslik joerg at anslik.de
Fri Dec 24 19:51:08 PST 2004


Hi,

one of my systems here (Shuttle SN95G5 with AMD 3800/64) had problems
with the onboard ethernet adapter dying during large file transfers.

The corresponding device, /dev/sk0 in my case, could only be brought
back to life with an ifconfig down / up...pretty annoying, especially
with all the "dead" file transfer processes (ftp, samba, whatever)
hanging around.

I googled a bit and found some FreeBSD people having similar problems,
but they seem to face "watchdog timeouts" on the sk?-device, which
never occured on my system. Furthermore, this issue seems to be
related to ASUS components, which my Shuttle doesn't have.

So no patch to port...but I came across a copy of the chip
manufacturers design specification and finally found out the chip my
system has on board (YUKON 88E8001) only has a total of 64k on-chip
RAM.

The problem is, the sk driver (as we know it) blindly assumes an 128k
on-chip RAM buffer, which is obviously incorrect for the 88E8001...but
seems to be okay for almost any other chip. So in this special YUKON
case, the interface dies on multiple Rx/Tx requests > 64k.

I fixed this -- the driver now explicitly checks the available amount
of on-chip RAM; please find attached the corresponding patch.

Enjoy

--j


P.S. I tested the new driver the past two days, performing excessive
file transfers, and didn't end up with sk0 being dead.

------------------
cd /pub
more beer





More information about the Submit mailing list