]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
cxgbe/t4_tom: fixes for issues on the passive open side.
authornp <np@FreeBSD.org>
Wed, 19 Dec 2018 01:37:00 +0000 (01:37 +0000)
committernp <np@FreeBSD.org>
Wed, 19 Dec 2018 01:37:00 +0000 (01:37 +0000)
commitfa98e20b14974be6917f979e6cf9db81bd5c42c7
tree81394b1bced267af8cf9bb3de3dda807a91775e3
parentb0758adada9f4363191e7c6c1463ddbd0eb082bb
cxgbe/t4_tom: fixes for issues on the passive open side.

- Fix PR 227760 by getting the TOE to respond to the SYN after the call
  to toe_syncache_add, not during it.  The kernel syncache code calls
  syncache_respond just before syncache_insert.  If the ACK to the
  syncache_respond is processed in another thread it may run before the
  syncache_insert and won't find the entry.  Note that this affects only
  t4_tom because it's the only driver trying to insert and expand
  syncache entries from different threads.

- Do not leak resources if an embryonic connection terminates at
  SYN_RCVD because of L2 lookup failures.

- Retire lctx->synq and associated code because there is never a need to
  walk the list of embryonic connections associated with a listener.
  The per-tid state is still called a synq entry in the driver even
  though the synq itself is now gone.

PR: 227760
MFC after: 2 weeks
Sponsored by: Chelsio Communications
sys/dev/cxgbe/tom/t4_connect.c
sys/dev/cxgbe/tom/t4_cpl_io.c
sys/dev/cxgbe/tom/t4_listen.c
sys/dev/cxgbe/tom/t4_tom.c
sys/dev/cxgbe/tom/t4_tom.h