RDMA/mlx5: Verify that QP is created with RQ or SQ
authorAharon Landau <aharonl@mellanox.com>
Mon, 27 Apr 2020 15:46:36 +0000 (18:46 +0300)
committerJason Gunthorpe <jgg@mellanox.com>
Thu, 30 Apr 2020 21:45:46 +0000 (18:45 -0300)
RAW packet QP and underlay QP must be created with either
RQ or SQ, check that.

Fixes: e126ba97dba9 ("mlx5: Add driver for Mellanox Connect-IB adapters")
Link: https://lore.kernel.org/r/20200427154636.381474-37-leon@kernel.org
Signed-off-by: Aharon Landau <aharonl@mellanox.com>
Reviewed-by: Maor Gottlieb <maorg@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 18c0a25..14f4f09 100644 (file)
@@ -1482,6 +1482,8 @@ static int create_raw_packet_qp(struct mlx5_ib_dev *dev, struct mlx5_ib_qp *qp,
        u16 uid = to_mpd(pd)->uid;
        u32 out[MLX5_ST_SZ_DW(create_tir_out)] = {};
 
+       if (!qp->sq.wqe_cnt && !qp->rq.wqe_cnt)
+               return -EINVAL;
        if (qp->sq.wqe_cnt) {
                err = create_raw_packet_qp_tis(dev, qp, sq, tdn, pd);
                if (err)