--=_courier-6570-1058213077-0001-2
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
This patch fixes another way the Rhine-I found to break down under load. It
should bring Rhine-I behavior on par with the Rhine-II.
Roger
--=_courier-6570-1058213077-0001-2
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="via-rhine-1.19.diff"
--- linux-2.4/drivers/net/via-rhine.c.org 2003-07-14 21:49:49.000000000 +0200
+++ linux-2.4/drivers/net/via-rhine.c 2003-07-14 21:50:19.000000000 +0200
@@ -122,11 +122,14 @@
- No filtering multicast in promisc mode (Edward Peng)
- Fix for Rhine-I Tx timeouts
+ LK1.1.19 (Roger Luethi)
+ - Increase Tx threshold for unspecified errors
+
*/
#define DRV_NAME "via-rhine"
-#define DRV_VERSION "1.1.18"
-#define DRV_RELDATE "July-4-2003"
+#define DRV_VERSION "1.1.19"
+#define DRV_RELDATE "July-12-2003"
/* A few user-configurable values.
@@ -1659,9 +1662,13 @@
}
if ((intr_status & IntrTxError) && ~( IntrTxAborted | IntrTxUnderrun |
IntrTxDescRace )) {
- if (debug > 2)
- printk(KERN_INFO "%s: Unspecified error.\n",
- dev->name);
+ if (np->tx_thresh < 0xE0) {
+ writeb(np->tx_thresh += 0x20, ioaddr + TxConfig);
+ }
+ if (debug > 1)
+ printk(KERN_INFO "%s: Unspecified error. Tx "
+ "threshold now %2.2x.\n",
+ dev->name, np->tx_thresh);
}
if (intr_status & ( IntrTxAborted | IntrTxUnderrun | IntrTxDescRace |
IntrTxError ))
--=_courier-6570-1058213077-0001-2--