Hi folks, this problem I had a few weeks ago with the sundance driver as well. I could fix it with merging the original driver into the kernel tree. Anyway doing that i figured that the problem was caused by the collision detection. This was resetting to fast the transmitter. SNIP with kernel.... if (intr_status & (IntrTxDone | IntrDrvRqst)) { tx_status = ioread16 (ioaddr + TxStatus); for (tx_cnt=32; tx_status & 0x80; --tx_cnt) { if (netif_msg_tx_done(np)) printk ("%s: Transmit status is %2.2x.\n", dev->name, tx_status); if (tx_status & 0x1e) { np->stats.tx_errors++; if (tx_status & 0x10) np->stats.tx_fifo_errors++; if (tx_status & 0x08) np->stats.collisions++; if (tx_status & 0x02) np->stats.tx_window_errors++; /* This reset has not been verified!. */ if (tx_status & 0x10) { /* Reset the Tx. */ np->stats.tx_fifo_errors++; spin_lock(&np->lock); reset_tx(dev); spin_unlock(&np->lock); } if (tx_status & 0x1e) /* Restart the Tx. */ iowrite16 (TxEnable, ioaddr + MACCtrl1); } /* Yup, this is a documentation bug. It cost me *hours*. */ SNAP with kernel SNIP original from DLINK... if (intr_status & (IntrTxDone | IntrDrvRqst)) { tx_status = readw (ioaddr + TxStatus); for (tx_cnt=32; tx_status & 0x80; --tx_cnt) { if (netif_msg_tx_done(np)) printk ("%s: Transmit status is %2.2x.\n", dev->name, tx_status); if (tx_status & 0x1e) { np->stats.tx_errors++; if (tx_status & 0x10) np->stats.tx_fifo_errors++; if (tx_status & 0x08) np->stats.collisions++; if (tx_status & 0x02) np->stats.tx_window_errors++; /* This reset has not been verified!. */ if (tx_status & 0x10) { /* Reset the Tx. */ np->stats.tx_fifo_errors++; spin_lock(&np->lock); reset_tx(dev); spin_unlock(&np->lock); } if (tx_status & 0x1e) { /* It could fail to restart the tx when MaxCollions, need to try more times */ int i = 10; do { writew (readw(ioaddr + MACCtrl1) | TxEnable, ioaddr + MACCtrl1); if (readw(ioaddr + MACCtrl1) & TxEnabled) break; mdelay(1); } while (--i); } } /* Yup, this is a documentation bug. It cost me *hours*. */ SNAP original from DLINK this was the main difference I could find. maybe some body with more experience can have a look? both extracts coming from sundance driver function intr_handler see you Frank Mary Ellen Foster wrote: On 5/23/05, Kevin Huffenberger <khuffenb@xxxxxxxxx> wrote:Meanwhile, the other error messages with regard to networking remain: i.e. NETDEV WATCHDOG: eth0: transmit timed out. I've attached below the diagnostics run under the new kernel. I'd like to chase down this problem, but I'm unsure from what angle to attack.These look somewhat similar to problems I'm having with the network card in my laptop (Broadcom something-or-other; the kernel driver is b44). See https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=154512 for a description of my problems. MEF |