Fix for eepro100 Tx timeouts?

From: Trond Myklebust (trond.myklebust@fys.uio.no)
Date: Wed Feb 09 2000 - 14:41:14 EST


Hi Linus,

  The following patch seems to fix the problem of Tx timeouts under
heavy NFS writes for the eepro100 driver under Linux-2.3.42 (and
previous 2.3.x drivers).

   A comparison with the equivalent driver under linux-2.2.x revealed
that the line which clears the Interrupt bit and Suspend bit has been
replaced with something that only clears the Suspend bit. This is
presumably preventing the scavenging of the Tx ring (if I read Donald's
notes correctly?) and preventing the clearing of the
tx_full/dev->tbusy pair.

Anyhow, on the scale of works/doesn't work, the 2.2.x-like behaviour
is definitely preferable on my setup...

Cheers,
  Trond

--- trondmy/linux-2.3/drivers/net/eepro100.c Mon Nov 15 14:56:29 1999
+++ tmp/linux-2.3/drivers/net/eepro100.c Wed Feb 9 20:18:13 2000
@@ -1255,7 +1255,7 @@
                 {
                         struct descriptor *last_cmd = sp->last_cmd;
                         sp->last_cmd = (struct descriptor *)&sp->tx_ring[entry];
- clear_suspend(last_cmd);
+ last_cmd->cmd_status &= cpu_to_le32(~(CmdSuspend | CmdIntr));
                 }
                 if (sp->cur_tx - sp->dirty_tx >= TX_QUEUE_LIMIT)
                         sp->tx_full = 1;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Feb 15 2000 - 21:00:15 EST