|
@@ -204,7 +204,9 @@ static int add_keys(struct mlx5_ib_dev *dev, int c, int num)
|
|
|
|
|
|
MLX5_SET(mkc, mkc, free, 1);
|
|
|
MLX5_SET(mkc, mkc, umr_en, 1);
|
|
|
- MLX5_SET(mkc, mkc, access_mode, ent->access_mode);
|
|
|
+ MLX5_SET(mkc, mkc, access_mode_1_0, ent->access_mode & 0x3);
|
|
|
+ MLX5_SET(mkc, mkc, access_mode_4_2,
|
|
|
+ (ent->access_mode >> 2) & 0x7);
|
|
|
|
|
|
MLX5_SET(mkc, mkc, qpn, 0xffffff);
|
|
|
MLX5_SET(mkc, mkc, translations_octword_size, ent->xlt);
|
|
@@ -804,7 +806,7 @@ struct ib_mr *mlx5_ib_get_dma_mr(struct ib_pd *pd, int acc)
|
|
|
|
|
|
mkc = MLX5_ADDR_OF(create_mkey_in, in, memory_key_mkey_entry);
|
|
|
|
|
|
- MLX5_SET(mkc, mkc, access_mode, MLX5_MKC_ACCESS_MODE_PA);
|
|
|
+ MLX5_SET(mkc, mkc, access_mode_1_0, MLX5_MKC_ACCESS_MODE_PA);
|
|
|
MLX5_SET(mkc, mkc, a, !!(acc & IB_ACCESS_REMOTE_ATOMIC));
|
|
|
MLX5_SET(mkc, mkc, rw, !!(acc & IB_ACCESS_REMOTE_WRITE));
|
|
|
MLX5_SET(mkc, mkc, rr, !!(acc & IB_ACCESS_REMOTE_READ));
|
|
@@ -1171,7 +1173,7 @@ static struct mlx5_ib_mr *reg_create(struct ib_mr *ibmr, struct ib_pd *pd,
|
|
|
|
|
|
mkc = MLX5_ADDR_OF(create_mkey_in, in, memory_key_mkey_entry);
|
|
|
MLX5_SET(mkc, mkc, free, !populate);
|
|
|
- MLX5_SET(mkc, mkc, access_mode, MLX5_MKC_ACCESS_MODE_MTT);
|
|
|
+ MLX5_SET(mkc, mkc, access_mode_1_0, MLX5_MKC_ACCESS_MODE_MTT);
|
|
|
MLX5_SET(mkc, mkc, a, !!(access_flags & IB_ACCESS_REMOTE_ATOMIC));
|
|
|
MLX5_SET(mkc, mkc, rw, !!(access_flags & IB_ACCESS_REMOTE_WRITE));
|
|
|
MLX5_SET(mkc, mkc, rr, !!(access_flags & IB_ACCESS_REMOTE_READ));
|
|
@@ -1668,7 +1670,8 @@ struct ib_mr *mlx5_ib_alloc_mr(struct ib_pd *pd,
|
|
|
goto err_free_in;
|
|
|
}
|
|
|
|
|
|
- MLX5_SET(mkc, mkc, access_mode, mr->access_mode);
|
|
|
+ MLX5_SET(mkc, mkc, access_mode_1_0, mr->access_mode & 0x3);
|
|
|
+ MLX5_SET(mkc, mkc, access_mode_4_2, (mr->access_mode >> 2) & 0x7);
|
|
|
MLX5_SET(mkc, mkc, umr_en, 1);
|
|
|
|
|
|
mr->ibmr.device = pd->device;
|
|
@@ -1749,7 +1752,7 @@ struct ib_mw *mlx5_ib_alloc_mw(struct ib_pd *pd, enum ib_mw_type type,
|
|
|
MLX5_SET(mkc, mkc, pd, to_mpd(pd)->pdn);
|
|
|
MLX5_SET(mkc, mkc, umr_en, 1);
|
|
|
MLX5_SET(mkc, mkc, lr, 1);
|
|
|
- MLX5_SET(mkc, mkc, access_mode, MLX5_MKC_ACCESS_MODE_KLMS);
|
|
|
+ MLX5_SET(mkc, mkc, access_mode_1_0, MLX5_MKC_ACCESS_MODE_KLMS);
|
|
|
MLX5_SET(mkc, mkc, en_rinval, !!((type == IB_MW_TYPE_2)));
|
|
|
MLX5_SET(mkc, mkc, qpn, 0xffffff);
|
|
|
|