mirror of https://gitee.com/openkylin/linux.git
RDMA/ocrdma: Remove fbo from MR
This is always the same value as IOVA masked by the page size, just use that clearer calculation directly. It is unclear of ocrdma hardware can actually support a true fbo, if so it could use a different algorithm to compute the best page size. Link: https://lore.kernel.org/r/17-v2-270386b7e60b+28f4-umem_1_jgg@nvidia.com Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
parent
b3003a7445
commit
1d4299ed77
|
@ -185,7 +185,6 @@ struct ocrdma_hw_mr {
|
||||||
u32 num_pbes;
|
u32 num_pbes;
|
||||||
u32 pbl_size;
|
u32 pbl_size;
|
||||||
u32 pbe_size;
|
u32 pbe_size;
|
||||||
u64 fbo;
|
|
||||||
u64 va;
|
u64 va;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1962,6 +1962,7 @@ static int ocrdma_mbx_reg_mr(struct ocrdma_dev *dev, struct ocrdma_hw_mr *hwmr,
|
||||||
int i;
|
int i;
|
||||||
struct ocrdma_reg_nsmr *cmd;
|
struct ocrdma_reg_nsmr *cmd;
|
||||||
struct ocrdma_reg_nsmr_rsp *rsp;
|
struct ocrdma_reg_nsmr_rsp *rsp;
|
||||||
|
u64 fbo = hwmr->va & (hwmr->pbe_size - 1);
|
||||||
|
|
||||||
cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_REGISTER_NSMR, sizeof(*cmd));
|
cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_REGISTER_NSMR, sizeof(*cmd));
|
||||||
if (!cmd)
|
if (!cmd)
|
||||||
|
@ -1987,8 +1988,8 @@ static int ocrdma_mbx_reg_mr(struct ocrdma_dev *dev, struct ocrdma_hw_mr *hwmr,
|
||||||
OCRDMA_REG_NSMR_HPAGE_SIZE_SHIFT;
|
OCRDMA_REG_NSMR_HPAGE_SIZE_SHIFT;
|
||||||
cmd->totlen_low = hwmr->len;
|
cmd->totlen_low = hwmr->len;
|
||||||
cmd->totlen_high = upper_32_bits(hwmr->len);
|
cmd->totlen_high = upper_32_bits(hwmr->len);
|
||||||
cmd->fbo_low = (u32) (hwmr->fbo & 0xffffffff);
|
cmd->fbo_low = lower_32_bits(fbo);
|
||||||
cmd->fbo_high = (u32) upper_32_bits(hwmr->fbo);
|
cmd->fbo_high = upper_32_bits(fbo);
|
||||||
cmd->va_loaddr = (u32) hwmr->va;
|
cmd->va_loaddr = (u32) hwmr->va;
|
||||||
cmd->va_hiaddr = (u32) upper_32_bits(hwmr->va);
|
cmd->va_hiaddr = (u32) upper_32_bits(hwmr->va);
|
||||||
|
|
||||||
|
|
|
@ -871,7 +871,6 @@ struct ib_mr *ocrdma_reg_user_mr(struct ib_pd *ibpd, u64 start, u64 len,
|
||||||
goto umem_err;
|
goto umem_err;
|
||||||
|
|
||||||
mr->hwmr.pbe_size = PAGE_SIZE;
|
mr->hwmr.pbe_size = PAGE_SIZE;
|
||||||
mr->hwmr.fbo = ib_umem_offset(mr->umem);
|
|
||||||
mr->hwmr.va = usr_addr;
|
mr->hwmr.va = usr_addr;
|
||||||
mr->hwmr.len = len;
|
mr->hwmr.len = len;
|
||||||
mr->hwmr.remote_wr = (acc & IB_ACCESS_REMOTE_WRITE) ? 1 : 0;
|
mr->hwmr.remote_wr = (acc & IB_ACCESS_REMOTE_WRITE) ? 1 : 0;
|
||||||
|
|
Loading…
Reference in New Issue