svn commit: r295133 - head/sys/dev/e1000

Marius Strobl marius at FreeBSD.org
Mon Feb 1 23:51:31 UTC 2016


Author: marius
Date: Mon Feb  1 23:51:30 2016
New Revision: 295133
URL: https://svnweb.freebsd.org/changeset/base/295133

Log:
  As it turns out, one of the more or less recent changes to em(4)
  causes watchdog timeouts when using TSO4 at link speeds below
  Gigabit, at least with 82573E. So disable the assist automatically
  when at lower speeds.
  
  Submitted by:	jfv
  Approved by:	erj
  Obtained from:	D3162
  MFC after:	3 days

Modified:
  head/sys/dev/e1000/if_em.c

Modified: head/sys/dev/e1000/if_em.c
==============================================================================
--- head/sys/dev/e1000/if_em.c	Mon Feb  1 23:12:04 2016	(r295132)
+++ head/sys/dev/e1000/if_em.c	Mon Feb  1 23:51:30 2016	(r295133)
@@ -1371,8 +1371,15 @@ em_init_locked(struct adapter *adapter)
 	if_clearhwassist(ifp);
 	if (if_getcapenable(ifp) & IFCAP_TXCSUM)
 		if_sethwassistbits(ifp, CSUM_TCP | CSUM_UDP, 0);
-	if (if_getcapenable(ifp) & IFCAP_TSO4)
-		if_sethwassistbits(ifp, CSUM_TSO, 0);
+	/* 
+	** There have proven to be problems with TSO when not
+	** at full gigabit speed, so disable the assist automatically
+	** when at lower speeds.  -jfv
+	*/
+	if (if_getcapenable(ifp) & IFCAP_TSO4) {
+		if (adapter->link_speed == SPEED_1000)
+			if_sethwassistbits(ifp, CSUM_TSO, 0);
+	}
 
 	/* Configure for OS presence */
 	em_init_manageability(adapter);


More information about the svn-src-all mailing list