]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - net/sunrpc/xprtrdma/svc_rdma_sendto.c
svcrdma: Improve DMA mapping trace points
[linux.git] / net / sunrpc / xprtrdma / svc_rdma_sendto.c
index 6fdba72f89f478122645f44e364af9449c55258e..f3f108090aa45cf4073f6ee98c06853d923c10d7 100644 (file)
@@ -233,11 +233,15 @@ void svc_rdma_send_ctxt_put(struct svcxprt_rdma *rdma,
        /* The first SGE contains the transport header, which
         * remains mapped until @ctxt is destroyed.
         */
-       for (i = 1; i < ctxt->sc_send_wr.num_sge; i++)
+       for (i = 1; i < ctxt->sc_send_wr.num_sge; i++) {
                ib_dma_unmap_page(device,
                                  ctxt->sc_sges[i].addr,
                                  ctxt->sc_sges[i].length,
                                  DMA_TO_DEVICE);
+               trace_svcrdma_dma_unmap_page(rdma,
+                                            ctxt->sc_sges[i].addr,
+                                            ctxt->sc_sges[i].length);
+       }
 
        for (i = 0; i < ctxt->sc_page_count; ++i)
                put_page(ctxt->sc_pages[i]);
@@ -490,6 +494,7 @@ static int svc_rdma_dma_map_page(struct svcxprt_rdma *rdma,
        dma_addr_t dma_addr;
 
        dma_addr = ib_dma_map_page(dev, page, offset, len, DMA_TO_DEVICE);
+       trace_svcrdma_dma_map_page(rdma, dma_addr, len);
        if (ib_dma_mapping_error(dev, dma_addr))
                goto out_maperr;
 
@@ -499,7 +504,6 @@ static int svc_rdma_dma_map_page(struct svcxprt_rdma *rdma,
        return 0;
 
 out_maperr:
-       trace_svcrdma_dma_map_page(rdma, page);
        return -EIO;
 }