提交 0d956e69 编写于 作者: C Chuck Lever 提交者: J. Bruce Fields

svcrdma: Clean-up svc_rdma_unmap_dma

There's no longer a need to compare each SGE's lkey with the PD's
local_dma_lkey. Now that FRWR is gone, all DMA mappings are for
pages that were registered with this key.
Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
上级 463e63d7
...@@ -225,22 +225,13 @@ void svc_rdma_unmap_dma(struct svc_rdma_op_ctxt *ctxt) ...@@ -225,22 +225,13 @@ void svc_rdma_unmap_dma(struct svc_rdma_op_ctxt *ctxt)
{ {
struct svcxprt_rdma *xprt = ctxt->xprt; struct svcxprt_rdma *xprt = ctxt->xprt;
struct ib_device *device = xprt->sc_cm_id->device; struct ib_device *device = xprt->sc_cm_id->device;
u32 lkey = xprt->sc_pd->local_dma_lkey;
unsigned int i; unsigned int i;
for (i = 0; i < ctxt->mapped_sges; i++) { for (i = 0; i < ctxt->mapped_sges; i++)
/* ib_dma_unmap_page(device,
* Unmap the DMA addr in the SGE if the lkey matches ctxt->sge[i].addr,
* the local_dma_lkey, otherwise, ignore it since it is ctxt->sge[i].length,
* an FRMR lkey and will be unmapped later when the ctxt->direction);
* last WR that uses it completes.
*/
if (ctxt->sge[i].lkey == lkey)
ib_dma_unmap_page(device,
ctxt->sge[i].addr,
ctxt->sge[i].length,
ctxt->direction);
}
ctxt->mapped_sges = 0; ctxt->mapped_sges = 0;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册