mirror of
https://github.com/opnsense/src.git
synced 2026-04-04 17:05:14 -04:00
Sockets representing the TCP endpoints for iWARP connections are allocated by the ibcore module. Before this revision they were closed either by the ibcore module or the iw_cxgbe hardware driver depending on the state transitions during connection teardown. This is error prone and there were cases where both iw_cxgbe and ibcore closed the socket leading to double-free panics. The fix is to let ibcore close the sockets it creates and never do it in the driver. - Use sodisconnect instead of soclose (preceded by solinger = 0) in the driver to tear down an RDMA connection abruptly. This does what's intended without releasing the socket's fd reference. - Close the socket in ibcore when the iWARP iw_cm_id is destroyed. This works for all kinds of sockets: clients that initiate connections, listeners, and sockets accepted off of listeners. Reviewed by: Steve Wise @ Open Grid Computing, hselasky@ MFC after: 3 days Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D9796 |
||
|---|---|---|
| .. | ||
| common | ||
| cxgbei | ||
| firmware | ||
| iw_cxgbe | ||
| tom | ||
| adapter.h | ||
| if_cc.c | ||
| if_ccv.c | ||
| if_cxl.c | ||
| if_cxlv.c | ||
| offload.h | ||
| osdep.h | ||
| t4_if.m | ||
| t4_ioctl.h | ||
| t4_iov.c | ||
| t4_l2t.c | ||
| t4_l2t.h | ||
| t4_main.c | ||
| t4_mp_ring.c | ||
| t4_mp_ring.h | ||
| t4_netmap.c | ||
| t4_sge.c | ||
| t4_tracer.c | ||
| t4_vf.c | ||