HomeFreeBSD

cxgbei: Rework parsing of pre-offload PDUs.

Description

cxgbei: Rework parsing of pre-offload PDUs.

sbcut() returns mbufs in reverse order so is not suitable for reading
data from the socket buffer. Instead, check for already-received data
in the receive worker thread before passing offload PDUs up to the
iSCSI layer. This uses soreceive() to read data from the socket and
is also to use M_WAITOK since it now runs from a worker thread instead
of an interrupt thread.

Also, fix decoding of the data segment length for pre-offload PDUs.

Reported by: Jithesh Arakkan @ Chelsio
Fixes: a8c4147edcdc cxgbei: Parse all PDUs received prior to enabling offload mode.
Sponsored by: Chelsio Communications

(cherry picked from commit 74fea8eb4fee65163fa745d0dbfcefc138ff7925)

Details

Provenance
jhbAuthored on Feb 4 2022, 11:38 PM
Parents
rG7f8f8202edc4: iscsi: Allocate a dummy PDU for the internal nexus reset task.
Branches
Unknown
Tags
Unknown