[realtek] Oversize ethernet frame causes chip to hang?
Donald Becker
becker@scyld.com
Tue, 15 May 2001 11:01:14 -0400 (EDT)
On Mon, 14 May 2001, Lynn Winebarger wrote:
> I've been having problems with oversize ethernet frames, and noticed
> this code in the driver:
What driver version are you using?
> if (rx_status & RxTooLong) {
> if (debug > 0)
> printk(KERN_NOTICE"%s: Oversized Ethernet frame, status %4.4x!\n",
> dev->name, rx_status);
> /* A.C.: The chip hangs here. */
>
> Is there any safe way to reset the chip inside the driver?
Yes. The code immediately below resets the receiver:
/* Reset the receiver, based on RealTek recommendation. (Bug?) */
tp->cur_rx = 0;
outb(CmdTxEnb, ioaddr + ChipCmd);
/* A.C.: Reset the multicast list. */
set_rx_mode(dev);
outb(CmdRxEnb | CmdTxEnb, ioaddr + ChipCmd);
The reason for the comment is that the documentation implies that the
chip should continue operation without a reset.
Donald Becker becker@scyld.com
Scyld Computing Corporation http://www.scyld.com
410 Severn Ave. Suite 210 Second Generation Beowulf Clusters
Annapolis MD 21403 410-990-9993