diff --git a/srpt/src/ib_srpt.c b/srpt/src/ib_srpt.c index 165c1a432..51286248c 100644 --- a/srpt/src/ib_srpt.c +++ b/srpt/src/ib_srpt.c @@ -2329,21 +2329,22 @@ retry: qp_init->sq_sig_type = IB_SIGNAL_REQ_WR; qp_init->qp_type = IB_QPT_RC; qp_init->cap.max_send_wr = sq_size; +#if HAVE_DEV_ATTR_MAX_SEND_SGE + ch->max_send_sge = sdev->dev_attr.max_send_sge; + ch->max_recv_sge = sdev->dev_attr.max_recv_sge; +#else + ch->max_send_sge = sdev->dev_attr.max_sge; + ch->max_recv_sge = ch->max_send_sge; +#endif /* * For max_sge values > 2 * max_sge_delta, subtract max_sge_delta. For * max_sge values < max_sge_delta, use max_sge. For intermediate * max_sge values, use max_sge_delta. */ -#if HAVE_DEV_ATTR_MAX_SEND_SGE - ch->max_send_sge = sdev->dev_attr.max_send_sge; - ch->max_recv_sge = sdev->dev_attr.max_recv_sge; -#else - ch->max_send_sge = sdev->dev_attr.max_sge - + ch->max_send_sge -= min_t(unsigned, max_sge_delta, max_t(int, 0, - sdev->dev_attr.max_sge - max_sge_delta)); - ch->max_recv_sge = ch->max_send_sge; -#endif + ch->max_send_sge - max_sge_delta)); qp_init->cap.max_send_sge = ch->max_send_sge; qp_init->cap.max_recv_sge = ch->max_recv_sge; if (sdev->use_srq) {