mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-02-20 12:46:37 +07:00
ntb_perf: avoid false dma unmap of destination address
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>
This commit is contained in:
parent
d769966577
commit
9cb8bfdf52
@ -804,7 +804,7 @@ static int perf_copy_chunk(struct perf_thread *pthr,
|
|||||||
dst_vaddr = dst;
|
dst_vaddr = dst;
|
||||||
dst_dma_addr = peer->dma_dst_addr + (dst_vaddr - vbase);
|
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)
|
if (!unmap)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
@ -817,15 +817,8 @@ static int perf_copy_chunk(struct perf_thread *pthr,
|
|||||||
}
|
}
|
||||||
unmap->to_cnt = 1;
|
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 {
|
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);
|
unmap->addr[0], len, DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
|
||||||
if (!tx)
|
if (!tx)
|
||||||
msleep(DMA_MDELAY);
|
msleep(DMA_MDELAY);
|
||||||
|
Loading…
Reference in New Issue
Block a user