diff options
author | Marius Strobl <marius@FreeBSD.org> | 2016-02-01 23:51:30 +0000 |
---|---|---|
committer | Marius Strobl <marius@FreeBSD.org> | 2016-02-01 23:51:30 +0000 |
commit | d233a81b5a242b909793922dc7719224fc300d92 (patch) | |
tree | 0e7114d3586aa1c4d8a6b39e2b4e0212051d99d2 /sys/dev/e1000 | |
parent | 93312a9143d94cfe5ec163be05bef26514709b9a (diff) | |
download | src-d233a81b5a242b909793922dc7719224fc300d92.tar.gz src-d233a81b5a242b909793922dc7719224fc300d92.zip |
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
Notes
Notes:
svn path=/head/; revision=295133
Diffstat (limited to 'sys/dev/e1000')
-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 c1a9ce8717df..b6c98b160e25 100644 --- a/sys/dev/e1000/if_em.c +++ b/sys/dev/e1000/if_em.c @@ -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); |