IB/mlx5: Introduce and use mkey context setting helper routine
Subsystems (2)
PATCH 1/1 IB/mlx5: Introduce and use mkey context setting helper routine
From: Parav Pandit <[email protected]>
Introduce and use set_mkc_access_pd_addr_fields() which sets mkey context's access rights, PD, address fields.
Thereby avoid the code duplication.
Signed-off-by Parav Pandit <[email protected]>
Signed-off-by Leon Romanovsky <[email protected]>
--- drivers/infiniband/hw/mlx5/mr.c | 34 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 18 deletions(-)
drivers/infiniband/hw/mlx5/mr.c +16 -18
@@ -705,6 +705,20 @@ int mlx5_mr_cache_cleanup(struct mlx5_ib_dev *dev)return 0 ; } +static void set_mkc_access_pd_addr_fields (void *mkc,int acc,u64 start_addr, +struct ib_pd *pd) +{ +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 )); +MLX5_SET (mkc, mkc, lw, !!(acc &IB_ACCESS_LOCAL_WRITE )); +MLX5_SET (mkc, mkc, lr,1 ); + +MLX5_SET (mkc, mkc, pd,to_mpd (pd)->pdn); +MLX5_SET (mkc, mkc, qpn,0xffffff ); +MLX5_SET64 (mkc, mkc, start_addr, start_addr); +} +struct ib_mr *mlx5_ib_get_dma_mr (struct ib_pd *pd,int acc) {struct mlx5_ib_dev *dev =to_mdev (pd->device);
@@ -728,16 +742,8 @@ 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_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 )); -MLX5_SET (mkc, mkc, lw, !!(acc &IB_ACCESS_LOCAL_WRITE )); -MLX5_SET (mkc, mkc, lr,1 ); -MLX5_SET (mkc, mkc, length64,1 ); -MLX5_SET (mkc, mkc, pd,to_mpd (pd)->pdn); -MLX5_SET (mkc, mkc, qpn,0xffffff ); -MLX5_SET64 (mkc, mkc, start_addr,0 ); +set_mkc_access_pd_addr_fields (mkc, acc,0 , pd); err =mlx5_core_create_mkey (mdev, &mr->mmkey, in, inlen);if (err)
@@ -1195,16 +1201,8 @@ static struct ib_mr *mlx5_ib_get_dm_mr(struct ib_pd *pd, u64 start_addr,MLX5_SET (mkc, mkc, access_mode_1_0, mode &0x3 );MLX5_SET (mkc, mkc, access_mode_4_2, (mode >>2 ) &0x7 ); -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 )); -MLX5_SET (mkc, mkc, lw, !!(acc &IB_ACCESS_LOCAL_WRITE )); -MLX5_SET (mkc, mkc, lr,1 ); -MLX5_SET64 (mkc, mkc, len, length); -MLX5_SET (mkc, mkc, pd,to_mpd (pd)->pdn); -MLX5_SET (mkc, mkc, qpn,0xffffff ); -MLX5_SET64 (mkc, mkc, start_addr, start_addr); +set_mkc_access_pd_addr_fields (mkc, acc, start_addr, pd); err =mlx5_core_create_mkey (mdev, &mr->mmkey, in, inlen);if (err)
Signature · 1 line
2.20.1
Jason Gunthorpe
AppliedQuoted 11 lines · Leon Romanovsky
From: Parav Pandit <[email protected]>
Introduce and use
set_mkc_access_pd_addr_fields()which sets mkey context's access rights, PD, address fields.
Thereby avoid the code duplication.Signed-off-by Parav Pandit <[email protected]>Signed-off-by Leon Romanovsky <[email protected]>--- drivers/infiniband/hw/mlx5/mr.c | 34 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 18 deletions(-)
Applied to for-next, thanks
Jason