aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Morgenstein <jackm@dev.mellanox.co.il>2007-06-11 18:09:50 +0300
committerRoland Dreier <rolandd@cisco.com>2007-06-11 14:48:27 -0700
commitc77ead01ac476ded29f9b4e1e0fbabf4c2fa7156 (patch)
tree56f1916613da6e6dc23c24fdd5c49b46d059d7a3
parent919c3773f87dcd310a6dc02dd6112f844ab17353 (diff)
downloadlibmlx4-c77ead01ac476ded29f9b4e1e0fbabf4c2fa7156.tar.gz
Fix problem with inline WQE in post_send error flow
Suppose a consumer posts a list of two WQEs, with the second wqe in the list being an INLINE which is too long. In this case, post_send jumps to "out" with: nreq = 1, inl positive, and size in the range allowing blueflame. All the blueflame test conditions are met. However, the cntl pointer now points to the invalid wqe, and this will be "blueflamed". Fix this by setting inl to 0 before jumping out of the loop. Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
-rw-r--r--src/qp.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/qp.c b/src/qp.c
index 92edec6..7df3311 100644
--- a/src/qp.c
+++ b/src/qp.c
@@ -236,6 +236,7 @@ int mlx4_post_send(struct ibv_qp *ibqp, struct ibv_send_wr *wr,
inl += len;
if (inl > qp->max_inline_data) {
+ inl = 0;
ret = -1;
*bad_wr = wr;
goto out;