summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarius <marius@FreeBSD.org>2016-02-04 23:56:01 +0000
committermarius <marius@FreeBSD.org>2016-02-04 23:56:01 +0000
commit7adabe51d5b5e2fa6c72a18dbf4bba0c14833901 (patch)
treeb44fe334da97f73aba1f236d9a4ebe6f4afc4682
parentcd6535554e503550ca26a3ad8290147c8655013d (diff)
downloadFreeBSD-src-7adabe51d5b5e2fa6c72a18dbf4bba0c14833901.zip
FreeBSD-src-7adabe51d5b5e2fa6c72a18dbf4bba0c14833901.tar.gz
MFC: r295133
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: re (kib), erj Obtained from: D3162
-rw-r--r--sys/dev/e1000/if_em.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c
index 31a4ca8..49e5abd 100644
--- a/sys/dev/e1000/if_em.c
+++ b/sys/dev/e1000/if_em.c
@@ -1377,8 +1377,15 @@ em_init_locked(struct adapter *adapter)
ifp->if_hwassist = 0;
if (ifp->if_capenable & IFCAP_TXCSUM)
ifp->if_hwassist |= (CSUM_TCP | CSUM_UDP);
- if (ifp->if_capenable & IFCAP_TSO4)
- ifp->if_hwassist |= CSUM_TSO;
+ /*
+ ** 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 (ifp->if_capenable & IFCAP_TSO4) {
+ if (adapter->link_speed == SPEED_1000)
+ ifp->if_hwassist |= CSUM_TSO;
+ }
/* Configure for OS presence */
em_init_manageability(adapter);
OpenPOWER on IntegriCloud