- Backport upstream patches * bnxt_re-lib-fix-the-memory-barrier-call-during-poll-cq.patch Fix memory ordering issue * bnxt_re-lib-increment-psn-in-case-of-0-length-packets.patch Fix PSN getting out of sync when sending 0 length packet * verbs-Do-not-block-QP-attr_masks-used-by-older-kernels.patch Fix bits detection to allow RDMA CM to work on older kernsl - Refresh older patches to include commit logs: * ibacm-Incorrect-list-used-for-subnet-list-causes-a-segfault.patch * ibacm-Incorrect-usage-of-BE-byte-order-of-MLID-attach-detach_mcast.patch * libibumad-umad.c-In-get_port-ignore-sysfs-rate-file-errors.patch * libqedr-fix-inline-data-copy.patch OBS-URL: https://build.opensuse.org/request/show/540247 OBS-URL: https://build.opensuse.org/package/show/science:HPC/rdma-core?expand=0&rev=59
30 lines
1.1 KiB
Diff
30 lines
1.1 KiB
Diff
commit 093dadc78984c9e44ea1c86ca4527a592a42417e
|
|
Author: Devesh Sharma <devesh.sharma@broadcom.com>
|
|
Date: Thu Nov 9 02:42:29 2017 -0500
|
|
|
|
bnxt_re/lib: increment psn in case of 0 length packets
|
|
|
|
If application posts a 0 length packet, post send routine
|
|
is skipping to increment the psn number. This will cause
|
|
PSN number to go out of sync and eventually connection would
|
|
terminate due to sequence error.
|
|
|
|
post_send routine must increment the psn number by 1 even
|
|
for zero length packets.
|
|
|
|
Signed-off-by: Devesh Sharma <devesh.sharma@broadcom.com>
|
|
|
|
diff --git providers/bnxt_re/verbs.c providers/bnxt_re/verbs.c
|
|
index 4d9b044a..9d4e02bb 100644
|
|
--- providers/bnxt_re/verbs.c
|
|
+++ providers/bnxt_re/verbs.c
|
|
@@ -1048,6 +1048,8 @@ static void bnxt_re_fill_psns(struct bnxt_re_qp *qp, struct bnxt_re_psns *psns,
|
|
pkt_cnt = (len / qp->mtu);
|
|
if (len % qp->mtu)
|
|
pkt_cnt++;
|
|
+ if (len == 0)
|
|
+ pkt_cnt = 1;
|
|
nxt_psn = ((qp->sq_psn + pkt_cnt) & BNXT_RE_PSNS_NPSN_MASK);
|
|
psns->flg_npsn = htole32(nxt_psn);
|
|
qp->sq_psn = nxt_psn;
|