Skip to contentSkip to conversation

via-rhine: Fix force media

PATCH New Roger Luethi 1 participant 1 message May 20, 2004 Network drivers

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 via-rhine: Fix force media

Lucas Nussbaum and Dirk Koeppen each found independently that the code for forcing media options in via-rhine is borked and suggested the fix below. I've been sitting on this way too long because there is more badness in the immediate vicinity which needs a bigger surgery.

The second hunk fixes a braino I managed to introduce myself.

The patch is for both 2.4 and 2.6. Please apply.

Roger

drivers/net/via-rhine.c +4 -3
@@ -860,7 +860,7 @@
 		if (option & 0x220)
 			np->mii_if.full_duplex = 1;
 		np->default_port = option & 0x3ff;
-		if (np->default_port & 0x330) {
+		if (option & 0x330) {
 			/* FIXME: shouldn't someone check this variable? */
 			/* np->medialock = 1; */
 			printk(KERN_INFO "  Forcing %dMbs %s-duplex operation.\n",
@@ -1683,8 +1683,9 @@
 			printk(KERN_INFO "%s: Tx descriptor write-back race.\n",
 				   dev->name);
 	}
-	if ((intr_status & IntrTxError) && ~( IntrTxAborted | IntrTxUnderrun |
-										   IntrTxDescRace )) {
+	if ((intr_status & IntrTxError) &&
+			(intr_status & ( IntrTxAborted |
+			IntrTxUnderrun | IntrTxDescRace )) == 0) {
 		if (np->tx_thresh < 0xE0) {
 			writeb(np->tx_thresh += 0x20, ioaddr + TxConfig);
 		}