summaryrefslogtreecommitdiffstats
path: root/sys/dev/cxgbe
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2017-02-03 23:48:56 +0000
committerjhb <jhb@FreeBSD.org>2017-02-03 23:48:56 +0000
commite2f1e57ebf4acaf04684a4f14c865499ab6ff22e (patch)
tree6f84d78f6ec3a52bbece55b65eed820a9373d5cd /sys/dev/cxgbe
parentcc8d4a2c8f424c6ed40fab40706784a5c770654f (diff)
downloadFreeBSD-src-e2f1e57ebf4acaf04684a4f14c865499ab6ff22e.zip
FreeBSD-src-e2f1e57ebf4acaf04684a4f14c865499ab6ff22e.tar.gz
MFC 312904: Don't drop a reference to the TOE PCB in undo_offload_socket().
undo_offload_socket() is only called by t4_connect() during a connection setup failure, but t4_connect() still owns the TOE PCB and frees ita after undo_offload_socket() returns. Release a reference in undo_offload_socket() resulted in a double-free which panicked when t4_connect() performed the second free. The reference release was added to undo_offload_socket() incorrectly in r299210. Sponsored by: Chelsio Communications
Diffstat (limited to 'sys/dev/cxgbe')
-rw-r--r--sys/dev/cxgbe/tom/t4_tom.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/sys/dev/cxgbe/tom/t4_tom.c b/sys/dev/cxgbe/tom/t4_tom.c
index 2c6f6e8..11558c2 100644
--- a/sys/dev/cxgbe/tom/t4_tom.c
+++ b/sys/dev/cxgbe/tom/t4_tom.c
@@ -273,8 +273,6 @@ undo_offload_socket(struct socket *so)
mtx_lock(&td->toep_list_lock);
TAILQ_REMOVE(&td->toep_list, toep, link);
mtx_unlock(&td->toep_list_lock);
-
- free_toepcb(toep);
}
static void
OpenPOWER on IntegriCloud