--- via-rhine.c.org Sat Jun 1 11:23:33 2002 +++ via-rhine.c Sat Jun 1 12:19:18 2002 @@ -1502,7 +1502,12 @@ static void via_rhine_error(struct net_d clear_tally_counters(ioaddr); } if (intr_status & IntrTxAbort) { - /* Stats counted in Tx-done handler, just restart Tx. */ + if (debug > 1) + printk(KERN_INFO "%s: Abort %4.4x, frame dropped.\n", + dev->name, intr_status); + /* We know better than the chip where it should continue */ + writel(virt_to_bus(&np->tx_ring[np->dirty_tx % TX_RING_SIZE]), + dev->base_addr + TxRingPtr); writew(CmdTxDemand | np->chip_cmd, dev->base_addr + ChipCmd); } if (intr_status & IntrTxUnderrun) {