From: Avihai Horon <avih...@nvidia.com>

Enable Relaxed Ordering for rds.

Relaxed Ordering is an optional access flag and as such, it is ignored
by vendors that don't support it.

Signed-off-by: Avihai Horon <avih...@nvidia.com>
Reviewed-by: Michael Guralnik <michael...@nvidia.com>
Signed-off-by: Leon Romanovsky <leo...@nvidia.com>
---
 net/rds/ib_frmr.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/net/rds/ib_frmr.c b/net/rds/ib_frmr.c
index 694eb916319e..1a60c2c90c78 100644
--- a/net/rds/ib_frmr.c
+++ b/net/rds/ib_frmr.c
@@ -76,7 +76,7 @@ static struct rds_ib_mr *rds_ib_alloc_frmr(struct 
rds_ib_device *rds_ibdev,
 
        frmr = &ibmr->u.frmr;
        frmr->mr = ib_alloc_mr(rds_ibdev->pd, IB_MR_TYPE_MEM_REG,
-                              pool->max_pages, 0);
+                              pool->max_pages, IB_ACCESS_RELAXED_ORDERING);
        if (IS_ERR(frmr->mr)) {
                pr_warn("RDS/IB: %s failed to allocate MR", __func__);
                err = PTR_ERR(frmr->mr);
@@ -156,9 +156,8 @@ static int rds_ib_post_reg_frmr(struct rds_ib_mr *ibmr)
        reg_wr.wr.num_sge = 0;
        reg_wr.mr = frmr->mr;
        reg_wr.key = frmr->mr->rkey;
-       reg_wr.access = IB_ACCESS_LOCAL_WRITE |
-                       IB_ACCESS_REMOTE_READ |
-                       IB_ACCESS_REMOTE_WRITE;
+       reg_wr.access = IB_ACCESS_LOCAL_WRITE | IB_ACCESS_REMOTE_READ |
+                       IB_ACCESS_REMOTE_WRITE | IB_ACCESS_RELAXED_ORDERING;
        reg_wr.wr.send_flags = IB_SEND_SIGNALED;
 
        ret = ib_post_send(ibmr->ic->i_cm_id->qp, &reg_wr.wr, NULL);
-- 
2.30.2

Reply via email to