diff options
author | marius <marius@FreeBSD.org> | 2016-02-04 23:56:01 +0000 |
---|---|---|
committer | marius <marius@FreeBSD.org> | 2016-02-04 23:56:01 +0000 |
commit | 7adabe51d5b5e2fa6c72a18dbf4bba0c14833901 (patch) | |
tree | b44fe334da97f73aba1f236d9a4ebe6f4afc4682 | |
parent | cd6535554e503550ca26a3ad8290147c8655013d (diff) | |
download | FreeBSD-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.c | 11 |
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); |