HomeFreeBSD

cxgbei: Wait for the final CPL to be received in icl_cxgbei_conn_close.

Description

cxgbei: Wait for the final CPL to be received in icl_cxgbei_conn_close.

A socket in the FIN_WAIT_1 state is marked disconnected by
do_close_con_rpl() even though there might still receive data pending.
This is because the socket at that point has set SBS_CANTRCVMORE which
causes the protocol layer to discard any data received before the FIN.
However, icl_cxgbei_conn_close needs to wait until all the data has
been discarded. Replace the wait for SS_ISDISCONNECTED with instead
waiting for final_cpl_received() to be called.

Reported by: Jithesh Arakkan @ Chelsio
Sponsored by: Chelsio Communications

(cherry picked from commit 2eb0e53a6b5ec1a72be70e966d4e562e1a8d4e88)

Details

Provenance
jhbAuthored on Aug 12 2021, 3:48 PM
Parents
rG132894ca4beb: cxgbei: Support for ISO (iSCSI segmentation offload).
Branches
Unknown
Tags
Unknown