git: 7b8dd078ea3c - main - libnvmf: Correctly set the controller and host PDA fields
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 02 Nov 2024 13:54:54 UTC
The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=7b8dd078ea3c6b836f514f47587672fd062279c8 commit 7b8dd078ea3c6b836f514f47587672fd062279c8 Author: John Baldwin <jhb@FreeBSD.org> AuthorDate: 2024-11-02 13:54:20 +0000 Commit: John Baldwin <jhb@FreeBSD.org> CommitDate: 2024-11-02 13:54:20 +0000 libnvmf: Correctly set the controller and host PDA fields The caller supplied PDU data alignment (PDA) field from nvmf_association_params is the caller's restriction on data alignment (so affects received PDUs), and the PDA value received from the other end is the remote end's restriction (so affects transmitted PDUs). I had these backwards so that if the remote end advertised a PDA it was used as the receive PDA instead of the transmit PDA. Sponsored by: Chelsio Communications --- lib/libnvmf/nvmf_tcp.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/libnvmf/nvmf_tcp.c b/lib/libnvmf/nvmf_tcp.c index 93948b9b5fd0..cc4c0b90b0fb 100644 --- a/lib/libnvmf/nvmf_tcp.c +++ b/lib/libnvmf/nvmf_tcp.c @@ -1024,8 +1024,8 @@ tcp_connect(struct nvmf_tcp_qpair *qp, struct nvmf_association *na, bool admin) return (false); } - qp->txpda = (params->tcp.pda + 1) * 4; - qp->rxpda = (ic_resp.cpda + 1) * 4; + qp->rxpda = (params->tcp.pda + 1) * 4; + qp->txpda = (ic_resp.cpda + 1) * 4; qp->header_digests = ic_resp.dgst.bits.hdgst_enable != 0; qp->data_digests = ic_resp.dgst.bits.ddgst_enable != 0; qp->maxr2t = params->tcp.maxr2t; @@ -1069,8 +1069,8 @@ tcp_accept(struct nvmf_tcp_qpair *qp, struct nvmf_association *na) return (false); } - qp->txpda = (params->tcp.pda + 1) * 4; - qp->rxpda = (ic_req.hpda + 1) * 4; + qp->rxpda = (params->tcp.pda + 1) * 4; + qp->txpda = (ic_req.hpda + 1) * 4; qp->header_digests = ic_resp.dgst.bits.hdgst_enable != 0; qp->data_digests = ic_resp.dgst.bits.ddgst_enable != 0; qp->maxr2t = le32toh(ic_req.maxr2t);