Re: Oops with 3c59x module (3com 3c595 NIC)

Jeff Garzik (jgarzik@pobox.com)
Sat, 07 Dec 2002 18:16:33 -0500


Andrew Morton wrote:
> That's a transmit underrun - data is not being fed into the NIC
> across the PCI bus fast enough. Possibly something has gone
> wrong with the busmastering logic on the mainboard, or the NIC.
>
> The driver will reset the transmitter when this happens, as per the
> manual. There's not much else we can do.

pci-skeleton.c and several of Don's drivers actually do do something
else on TxUnderrun, twiddle DMA burst settings:

if ((intr_status & TxUnderrun)
&& (np->tx_config & TxThresholdField) !=
TxThresholdField) {
long ioaddr = dev->base_addr;
np->tx_config += TxThresholdInc;
writel(np->tx_config, ioaddr + TxMode);
np->stats.tx_fifo_errors++;
}

I wonder how feasible it is to do that on 3c59x hardware?

-
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/