mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 04:21:09 -04:00
svcrdma: Clean up use of rdma->sc_pd->device in Receive paths
I can't think of a reason why svcrdma is using the PD's device. Most other consumers of the IB DMA API use the ib_device pointer from the connection's rdma_cm_id. I don't believe there's any functional difference between the two, but it is a little confusing to see some uses of rdma_cm_id->device and some of ib_pd->device. Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
This commit is contained in:
@@ -118,7 +118,8 @@ svc_rdma_next_recv_ctxt(struct list_head *list)
|
||||
static struct svc_rdma_recv_ctxt *
|
||||
svc_rdma_recv_ctxt_alloc(struct svcxprt_rdma *rdma)
|
||||
{
|
||||
int node = ibdev_to_node(rdma->sc_cm_id->device);
|
||||
struct ib_device *device = rdma->sc_cm_id->device;
|
||||
int node = ibdev_to_node(device);
|
||||
struct svc_rdma_recv_ctxt *ctxt;
|
||||
unsigned long pages;
|
||||
dma_addr_t addr;
|
||||
@@ -133,9 +134,9 @@ svc_rdma_recv_ctxt_alloc(struct svcxprt_rdma *rdma)
|
||||
buffer = kmalloc_node(rdma->sc_max_req_size, GFP_KERNEL, node);
|
||||
if (!buffer)
|
||||
goto fail1;
|
||||
addr = ib_dma_map_single(rdma->sc_pd->device, buffer,
|
||||
rdma->sc_max_req_size, DMA_FROM_DEVICE);
|
||||
if (ib_dma_mapping_error(rdma->sc_pd->device, addr))
|
||||
addr = ib_dma_map_single(device, buffer, rdma->sc_max_req_size,
|
||||
DMA_FROM_DEVICE);
|
||||
if (ib_dma_mapping_error(device, addr))
|
||||
goto fail2;
|
||||
|
||||
svc_rdma_recv_cid_init(rdma, &ctxt->rc_cid);
|
||||
@@ -167,7 +168,7 @@ svc_rdma_recv_ctxt_alloc(struct svcxprt_rdma *rdma)
|
||||
static void svc_rdma_recv_ctxt_destroy(struct svcxprt_rdma *rdma,
|
||||
struct svc_rdma_recv_ctxt *ctxt)
|
||||
{
|
||||
ib_dma_unmap_single(rdma->sc_pd->device, ctxt->rc_recv_sge.addr,
|
||||
ib_dma_unmap_single(rdma->sc_cm_id->device, ctxt->rc_recv_sge.addr,
|
||||
ctxt->rc_recv_sge.length, DMA_FROM_DEVICE);
|
||||
kfree(ctxt->rc_recv_buf);
|
||||
kfree(ctxt);
|
||||
@@ -955,7 +956,7 @@ int svc_rdma_recvfrom(struct svc_rqst *rqstp)
|
||||
return 0;
|
||||
|
||||
percpu_counter_inc(&svcrdma_stat_recv);
|
||||
ib_dma_sync_single_for_cpu(rdma_xprt->sc_pd->device,
|
||||
ib_dma_sync_single_for_cpu(rdma_xprt->sc_cm_id->device,
|
||||
ctxt->rc_recv_sge.addr, ctxt->rc_byte_len,
|
||||
DMA_FROM_DEVICE);
|
||||
svc_rdma_build_arg_xdr(rqstp, ctxt);
|
||||
|
||||
Reference in New Issue
Block a user