ntb_perf: avoid false dma unmap of destination address
authorSanjay R Mehta <sanju.mehta@amd.com>
Wed, 6 May 2020 04:21:52 +0000 (23:21 -0500)
committerJon Mason <jdmason@kudzu.us>
Sat, 6 Jun 2020 00:02:08 +0000 (20:02 -0400)
The DMA map and unmap of destination address is already being
done in perf_init_test() and perf_clear_test() functions.
Hence avoiding it by making necessary changes in perf_copy_chunk()
function.

Signed-off-by: Sanjay R Mehta <sanju.mehta@amd.com>
Signed-off-by: Arindam Nath <arindam.nath@amd.com>
Signed-off-by: Jon Mason <jdmason@kudzu.us>
drivers/ntb/test/ntb_perf.c

index f159e2f..42b8a8d 100644 (file)
@@ -804,7 +804,7 @@ static int perf_copy_chunk(struct perf_thread *pthr,
        dst_vaddr = dst;
        dst_dma_addr = peer->dma_dst_addr + (dst_vaddr - vbase);
 
-       unmap = dmaengine_get_unmap_data(dma_dev, 2, GFP_NOWAIT);
+       unmap = dmaengine_get_unmap_data(dma_dev, 1, GFP_NOWAIT);
        if (!unmap)
                return -ENOMEM;
 
@@ -817,15 +817,8 @@ static int perf_copy_chunk(struct perf_thread *pthr,
        }
        unmap->to_cnt = 1;
 
-       unmap->addr[1] = dst_dma_addr;
-       if (dma_mapping_error(dma_dev, unmap->addr[1])) {
-               ret = -EIO;
-               goto err_free_resource;
-       }
-       unmap->from_cnt = 1;
-
        do {
-               tx = dmaengine_prep_dma_memcpy(pthr->dma_chan, unmap->addr[1],
+               tx = dmaengine_prep_dma_memcpy(pthr->dma_chan, dst_dma_addr,
                        unmap->addr[0], len, DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
                if (!tx)
                        msleep(DMA_MDELAY);