From: Leon Romanovsky <leonro@xxxxxxxxxx> >From Jason: The MR code computes and passes around a tuple of (npages, page_shift, ncont, order) to represent the size of the MR in various terms. This is quite confusing about what term refers to what, and overlaps with data already stored and computed inside the umem. Rework all of this to be more umem centric and use these identities instead: npages == ib_umem_num_pages(mr->umem) page_shift == mr->page_shift ncont == ib_umem_num_dma_blocks(mr->umem, 1 << mr->page_shift) order == order_base_2(ncont) By storing the page_shift inside the mlx5_ib_mr it becomes nearly self describing. Thanks Jason Gunthorpe (7): RDMA/mlx5: Remove mlx5_ib_mr->order RDMA/mlx5: Fix corruption of reg_pages in mlx5_ib_rereg_user_mr() RDMA/mlx5: Remove mlx5_ib_mr->npages RDMA/mlx5: Move mlx5_ib_cont_pages() to the creation of the mlx5_ib_mr RDMA/mlx5: Remove order from mlx5_ib_cont_pages() RDMA/mlx5: Remove ncont from mlx5_ib_cont_pages() RDMA/mlx5: Remove npages from mlx5_ib_cont_pages() drivers/infiniband/hw/mlx5/cq.c | 39 ++++--- drivers/infiniband/hw/mlx5/devx.c | 20 ++-- drivers/infiniband/hw/mlx5/mem.c | 30 ++--- drivers/infiniband/hw/mlx5/mlx5_ib.h | 6 +- drivers/infiniband/hw/mlx5/mr.c | 168 ++++++++++++--------------- drivers/infiniband/hw/mlx5/qp.c | 39 +++---- drivers/infiniband/hw/mlx5/srq.c | 8 +- 7 files changed, 134 insertions(+), 176 deletions(-) -- 2.26.2