LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH] e1000: fix TX timout hang regression for 82542rev3
@ 2006-09-11 21:00 Auke Kok
  2006-09-12 15:46 ` Jeff Garzik
  0 siblings, 1 reply; 2+ messages in thread
From: Auke Kok @ 2006-09-11 21:00 UTC (permalink / raw)
  To: torvalds, jgarzik, stable
  Cc: auke-jan.h.kok, auke, linux-kernel, netdev, greg,
	jesse.brandeburg, john.ronciak, linville, tony, bunk

Commit 581d708eb47cccb5f41bc0817e50c9b004011ba8 (oct. 5 2005) introduced
partial Multiqueue support for e1000 which broke macro smartness in setting
up head/tail registers for 82542 rev3 chipsets, making these adapters
completely non-working since 2.6.15.

This commit sets the proper head and tail registers for read and write
descriptor rings. Ths fix was tested on an 82542 rev3 NIC and newer NICs.

Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>

diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index 726f43d..98ef9f8 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -1433,8 +1433,8 @@ e1000_configure_tx(struct e1000_adapter
 		E1000_WRITE_REG(hw, TDBAL, (tdba & 0x00000000ffffffffULL));
 		E1000_WRITE_REG(hw, TDT, 0);
 		E1000_WRITE_REG(hw, TDH, 0);
-		adapter->tx_ring[0].tdh = E1000_TDH;
-		adapter->tx_ring[0].tdt = E1000_TDT;
+		adapter->tx_ring[0].tdh = ((hw->mac_type >= e1000_82543) ? E1000_TDH : E1000_82542_TDH);
+		adapter->tx_ring[0].tdt = ((hw->mac_type >= e1000_82543) ? E1000_TDT : E1000_82542_TDT);
 		break;
 	}
 
@@ -1840,8 +1840,8 @@ #endif
 		E1000_WRITE_REG(hw, RDBAL, (rdba & 0x00000000ffffffffULL));
 		E1000_WRITE_REG(hw, RDT, 0);
 		E1000_WRITE_REG(hw, RDH, 0);
-		adapter->rx_ring[0].rdh = E1000_RDH;
-		adapter->rx_ring[0].rdt = E1000_RDT;
+		adapter->rx_ring[0].rdh = ((hw->mac_type >= e1000_82543) ? E1000_RDH : E1000_82542_RDH);
+		adapter->rx_ring[0].rdt = ((hw->mac_type >= e1000_82543) ? E1000_RDT : E1000_82542_RDT);
 		break;
 	}
 

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] e1000: fix TX timout hang regression for 82542rev3
  2006-09-11 21:00 [PATCH] e1000: fix TX timout hang regression for 82542rev3 Auke Kok
@ 2006-09-12 15:46 ` Jeff Garzik
  0 siblings, 0 replies; 2+ messages in thread
From: Jeff Garzik @ 2006-09-12 15:46 UTC (permalink / raw)
  To: Auke Kok
  Cc: torvalds, stable, auke, linux-kernel, netdev, greg,
	jesse.brandeburg, john.ronciak, linville, tony, bunk

applied to #upstream-fixes


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-09-12 15:47 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-09-11 21:00 [PATCH] e1000: fix TX timout hang regression for 82542rev3 Auke Kok
2006-09-12 15:46 ` Jeff Garzik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).