IB/mlx5: Allow XRC INI usage via verbs in DEVX context
authorYishai Hadas <yishaih@mellanox.com>
Sun, 23 Dec 2018 11:12:21 +0000 (13:12 +0200)
committerJason Gunthorpe <jgg@mellanox.com>
Wed, 2 Jan 2019 16:40:34 +0000 (09:40 -0700)
From device point of view both XRC target and initiator are XRC transport
type.

Fix to use the expected UID as was handled for the XRC target case to
allow its usage via verbs in DEVX context.

Fixes: 5aa3771ded54 ("IB/mlx5: Allow XRC usage via verbs in DEVX context")
Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Reviewed-by: Artemy Kovalyov <artemyko@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/hw/mlx5/qp.c

index 9c94c1b9ec35da6bdcda4cfb430a8024aa17775c..dd2ae640bc848add5f316d2285b497347e6d69ea 100644 (file)
@@ -837,7 +837,8 @@ static int create_user_qp(struct mlx5_ib_dev *dev, struct ib_pd *pd,
                goto err_umem;
        }
 
-       uid = (attr->qp_type != IB_QPT_XRC_TGT) ? to_mpd(pd)->uid : 0;
+       uid = (attr->qp_type != IB_QPT_XRC_TGT &&
+              attr->qp_type != IB_QPT_XRC_INI) ? to_mpd(pd)->uid : 0;
        MLX5_SET(create_qp_in, *in, uid, uid);
        pas = (__be64 *)MLX5_ADDR_OF(create_qp_in, *in, pas);
        if (ubuffer->umem)