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

Details

Provenance
jhbAuthored on Aug 12 2021, 3:48 PM
Parents
rG95941b963606: param.h: Bump __FreeBSD_version to 1400030
Branches
Unknown
Tags
Unknown