diff options
Diffstat (limited to 'drivers/infiniband/sw/rdmavt/qp.c')
-rw-r--r-- | drivers/infiniband/sw/rdmavt/qp.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/infiniband/sw/rdmavt/qp.c b/drivers/infiniband/sw/rdmavt/qp.c index a1bd8cfc2c25..c6cc3e4ab71d 100644 --- a/drivers/infiniband/sw/rdmavt/qp.c +++ b/drivers/infiniband/sw/rdmavt/qp.c | |||
@@ -2910,6 +2910,8 @@ send: | |||
2910 | goto op_err; | 2910 | goto op_err; |
2911 | if (!ret) | 2911 | if (!ret) |
2912 | goto rnr_nak; | 2912 | goto rnr_nak; |
2913 | if (wqe->length > qp->r_len) | ||
2914 | goto inv_err; | ||
2913 | break; | 2915 | break; |
2914 | 2916 | ||
2915 | case IB_WR_RDMA_WRITE_WITH_IMM: | 2917 | case IB_WR_RDMA_WRITE_WITH_IMM: |
@@ -3078,7 +3080,10 @@ op_err: | |||
3078 | goto err; | 3080 | goto err; |
3079 | 3081 | ||
3080 | inv_err: | 3082 | inv_err: |
3081 | send_status = IB_WC_REM_INV_REQ_ERR; | 3083 | send_status = |
3084 | sqp->ibqp.qp_type == IB_QPT_RC ? | ||
3085 | IB_WC_REM_INV_REQ_ERR : | ||
3086 | IB_WC_SUCCESS; | ||
3082 | wc.status = IB_WC_LOC_QP_OP_ERR; | 3087 | wc.status = IB_WC_LOC_QP_OP_ERR; |
3083 | goto err; | 3088 | goto err; |
3084 | 3089 | ||