mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 10:09:10 +02:00
IB/mlx5: Remove unused mkc bits in mlx5r_umr_update_mr_page_shift()
The HW only processes mkc fields selected by mkey_mask.
pd, qpn and mkey_7_0 are never selected so they can be left as zero.
This removes a racy read of mr->pd.
Fixes: e73242aa14 ("RDMA/mlx5: Optimize DMABUF mkey page size")
Link: https://patch.msgid.link/r/5-v1-29ebd2c229b5+fd5-ib_mr_pd_jgg@nvidia.com
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
parent
50d5c02ab8
commit
4910483bd7
|
|
@ -937,8 +937,7 @@ int mlx5r_umr_update_xlt(struct mlx5_ib_mr *mr, u64 idx, int npages,
|
|||
* pinned and the HW can switch from 4K to huge-page alignment).
|
||||
*/
|
||||
int mlx5r_umr_update_mr_page_shift(struct mlx5_ib_mr *mr,
|
||||
unsigned int page_shift,
|
||||
bool dd)
|
||||
unsigned int page_shift)
|
||||
{
|
||||
struct mlx5_ib_dev *dev = mr_to_mdev(mr);
|
||||
struct mlx5r_umr_wqe wqe = {};
|
||||
|
|
@ -953,16 +952,8 @@ int mlx5r_umr_update_mr_page_shift(struct mlx5_ib_mr *mr,
|
|||
/* Fill mkey segment with the new page size, keep the rest unchanged */
|
||||
MLX5_SET(mkc, &wqe.mkey_seg, log_page_size, page_shift);
|
||||
|
||||
if (dd)
|
||||
MLX5_SET(mkc, &wqe.mkey_seg, pd, dev->ddr.pdn);
|
||||
else
|
||||
MLX5_SET(mkc, &wqe.mkey_seg, pd, to_mpd(mr->ibmr.pd)->pdn);
|
||||
|
||||
MLX5_SET64(mkc, &wqe.mkey_seg, start_addr, mr->ibmr.iova);
|
||||
MLX5_SET64(mkc, &wqe.mkey_seg, len, mr->ibmr.length);
|
||||
MLX5_SET(mkc, &wqe.mkey_seg, qpn, 0xffffff);
|
||||
MLX5_SET(mkc, &wqe.mkey_seg, mkey_7_0,
|
||||
mlx5_mkey_variant(mr->mmkey.key));
|
||||
|
||||
err = mlx5r_umr_post_send_wait(dev, mr->mmkey.key, &wqe, false);
|
||||
if (!err)
|
||||
|
|
@ -1049,7 +1040,7 @@ static int _mlx5r_umr_zap_mkey(struct mlx5_ib_mr *mr,
|
|||
* non-present.
|
||||
*/
|
||||
if (*nblocks) {
|
||||
err = mlx5r_umr_update_mr_page_shift(mr, max_page_shift, dd);
|
||||
err = mlx5r_umr_update_mr_page_shift(mr, max_page_shift);
|
||||
if (err) {
|
||||
mr->page_shift = old_page_shift;
|
||||
return err;
|
||||
|
|
@ -1114,8 +1105,7 @@ int mlx5r_umr_dmabuf_update_pgsz(struct mlx5_ib_mr *mr, u32 xlt_flags,
|
|||
goto err;
|
||||
}
|
||||
|
||||
err = mlx5r_umr_update_mr_page_shift(mr, mr->page_shift,
|
||||
mr->data_direct);
|
||||
err = mlx5r_umr_update_mr_page_shift(mr, mr->page_shift);
|
||||
if (err)
|
||||
goto err;
|
||||
err = _mlx5r_dmabuf_umr_update_pas(mr, xlt_flags, 0, zapped_blocks,
|
||||
|
|
|
|||
|
|
@ -106,8 +106,7 @@ int mlx5r_umr_update_mr_pas(struct mlx5_ib_mr *mr, unsigned int flags);
|
|||
int mlx5r_umr_update_xlt(struct mlx5_ib_mr *mr, u64 idx, int npages,
|
||||
int page_shift, int flags);
|
||||
int mlx5r_umr_update_mr_page_shift(struct mlx5_ib_mr *mr,
|
||||
unsigned int page_shift,
|
||||
bool dd);
|
||||
unsigned int page_shift);
|
||||
int mlx5r_umr_dmabuf_update_pgsz(struct mlx5_ib_mr *mr, u32 xlt_flags,
|
||||
unsigned int page_shift);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user