diff options
Diffstat (limited to 'drivers/infiniband/hw/mlx5')
| -rw-r--r-- | drivers/infiniband/hw/mlx5/mr.c | 2 | ||||
| -rw-r--r-- | drivers/infiniband/hw/mlx5/qp.c | 2 | 
2 files changed, 3 insertions, 1 deletions
| diff --git a/drivers/infiniband/hw/mlx5/mr.c b/drivers/infiniband/hw/mlx5/mr.c index 3be36ebbf67a..22e2f4d79743 100644 --- a/drivers/infiniband/hw/mlx5/mr.c +++ b/drivers/infiniband/hw/mlx5/mr.c @@ -1339,7 +1339,6 @@ static struct mlx5_ib_mr *reg_create(struct ib_pd *pd, struct ib_umem *umem,  		goto err_2;  	}  	mr->mmkey.type = MLX5_MKEY_MR; -	mr->desc_size = sizeof(struct mlx5_mtt);  	mr->umem = umem;  	set_mr_fields(dev, mr, umem->length, access_flags);  	kvfree(in); @@ -1533,6 +1532,7 @@ static struct ib_mr *create_user_odp_mr(struct ib_pd *pd, u64 start, u64 length,  		ib_umem_release(&odp->umem);  		return ERR_CAST(mr);  	} +	xa_init(&mr->implicit_children);  	odp->private = mr;  	err = mlx5r_store_odp_mkey(dev, &mr->mmkey); diff --git a/drivers/infiniband/hw/mlx5/qp.c b/drivers/infiniband/hw/mlx5/qp.c index b2fca110346c..e5abbcfc1d57 100644 --- a/drivers/infiniband/hw/mlx5/qp.c +++ b/drivers/infiniband/hw/mlx5/qp.c @@ -4458,6 +4458,8 @@ static int mlx5_ib_modify_dct(struct ib_qp *ibqp, struct ib_qp_attr *attr,  		MLX5_SET(dctc, dctc, mtu, attr->path_mtu);  		MLX5_SET(dctc, dctc, my_addr_index, attr->ah_attr.grh.sgid_index);  		MLX5_SET(dctc, dctc, hop_limit, attr->ah_attr.grh.hop_limit); +		if (attr->ah_attr.type == RDMA_AH_ATTR_TYPE_ROCE) +			MLX5_SET(dctc, dctc, eth_prio, attr->ah_attr.sl & 0x7);  		err = mlx5_core_create_dct(dev, &qp->dct.mdct, qp->dct.in,  					   MLX5_ST_SZ_BYTES(create_dct_in), out, |