diff options
author | Jack Morgenstein <jackm@dev.mellanox.co.il> | 2007-06-11 18:09:50 +0300 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2007-06-11 14:48:27 -0700 |
commit | c77ead01ac476ded29f9b4e1e0fbabf4c2fa7156 (patch) | |
tree | 56f1916613da6e6dc23c24fdd5c49b46d059d7a3 | |
parent | 919c3773f87dcd310a6dc02dd6112f844ab17353 (diff) | |
download | libmlx4-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.c | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -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; |