Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b475598a authored by Haggai Eran's avatar Haggai Eran Committed by Roland Dreier
Browse files

mlx5_core: Store MR attributes in mlx5_mr_core during creation and after UMR



The patch stores iova, pd and size during mr creation and after UMRs
that modify them.  It removes the unused access flags field.

Signed-off-by: default avatarHaggai Eran <haggaie@mellanox.com>
Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
parent 8605933a
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -794,6 +794,10 @@ static struct mlx5_ib_mr *reg_umr(struct ib_pd *pd, struct ib_umem *umem,
		err = -EFAULT;
	}

	mr->mmr.iova = virt_addr;
	mr->mmr.size = len;
	mr->mmr.pd = to_mpd(pd)->pdn;

unmap_dma:
	up(&umrc->sem);
	dma_unmap_single(ddev, mr->dma, size, DMA_TO_DEVICE);
+4 −0
Original line number Diff line number Diff line
@@ -82,7 +82,11 @@ int mlx5_core_create_mkey(struct mlx5_core_dev *dev, struct mlx5_core_mr *mr,
		return mlx5_cmd_status_to_err(&lout.hdr);
	}

	mr->iova = be64_to_cpu(in->seg.start_addr);
	mr->size = be64_to_cpu(in->seg.len);
	mr->key = mlx5_idx_to_mkey(be32_to_cpu(lout.mkey) & 0xffffff) | key;
	mr->pd = be32_to_cpu(in->seg.flags_pd) & 0xffffff;

	mlx5_core_dbg(dev, "out 0x%x, key 0x%x, mkey 0x%x\n",
		      be32_to_cpu(lout.mkey), key, mr->key);

+0 −1
Original line number Diff line number Diff line
@@ -427,7 +427,6 @@ struct mlx5_core_mr {
	u64			size;
	u32			key;
	u32			pd;
	u32			access;
};

struct mlx5_core_srq {