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

From: Jeff Garzik (jgarzik@pobox.com)
Date: Sat Dec 07 2002 - 18:16:33 EST


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/



This archive was generated by hypermail 2b29 : Sat Dec 07 2002 - 22:00:31 EST