When running without IOMMU for address translation, i.e. IOVAs are physical rather than virtual addresses, we need to translate the pointers to IOVAs for the completion API tests.
Fixes: 9942ebb9c698 ("test/dma: add dmadev API test") Cc: fengcheng...@huawei.com Cc: sta...@dpdk.org Signed-off-by: Bruce Richardson <bruce.richard...@intel.com> --- app/test/test_dmadev_api.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/app/test/test_dmadev_api.c b/app/test/test_dmadev_api.c index d40c05cfbf..fb49fcb56b 100644 --- a/app/test/test_dmadev_api.c +++ b/app/test/test_dmadev_api.c @@ -515,7 +515,9 @@ test_dma_completed(void) setup_memory(); /* Check enqueue without submit */ - ret = rte_dma_copy(test_dev_id, 0, (rte_iova_t)src, (rte_iova_t)dst, + ret = rte_dma_copy(test_dev_id, 0, + rte_malloc_virt2iova(src), + rte_malloc_virt2iova(dst), TEST_MEMCPY_SIZE, 0); RTE_TEST_ASSERT_EQUAL(ret, 0, "Failed to enqueue copy, %d", ret); rte_delay_us_sleep(TEST_WAIT_US_VAL); @@ -537,7 +539,9 @@ test_dma_completed(void) setup_memory(); /* Check for enqueue with submit */ - ret = rte_dma_copy(test_dev_id, 0, (rte_iova_t)src, (rte_iova_t)dst, + ret = rte_dma_copy(test_dev_id, 0, + rte_malloc_virt2iova(src), + rte_malloc_virt2iova(dst), TEST_MEMCPY_SIZE, RTE_DMA_OP_FLAG_SUBMIT); RTE_TEST_ASSERT_EQUAL(ret, 1, "Failed to enqueue copy, %d", ret); rte_delay_us_sleep(TEST_WAIT_US_VAL); @@ -572,7 +576,9 @@ test_dma_completed_status(void) RTE_TEST_ASSERT_SUCCESS(ret, "Failed to start, %d", ret); /* Check for enqueue with submit */ - ret = rte_dma_copy(test_dev_id, 0, (rte_iova_t)src, (rte_iova_t)dst, + ret = rte_dma_copy(test_dev_id, 0, + rte_malloc_virt2iova(src), + rte_malloc_virt2iova(dst), TEST_MEMCPY_SIZE, RTE_DMA_OP_FLAG_SUBMIT); RTE_TEST_ASSERT_EQUAL(ret, 0, "Failed to enqueue copy, %d", ret); rte_delay_us_sleep(TEST_WAIT_US_VAL); @@ -591,7 +597,9 @@ test_dma_completed_status(void) RTE_TEST_ASSERT_EQUAL(cpl_ret, 0, "Failed to completed status"); /* Check for enqueue with submit again */ - ret = rte_dma_copy(test_dev_id, 0, (rte_iova_t)src, (rte_iova_t)dst, + ret = rte_dma_copy(test_dev_id, 0, + rte_malloc_virt2iova(src), + rte_malloc_virt2iova(dst), TEST_MEMCPY_SIZE, RTE_DMA_OP_FLAG_SUBMIT); RTE_TEST_ASSERT_EQUAL(ret, 1, "Failed to enqueue copy, %d", ret); rte_delay_us_sleep(TEST_WAIT_US_VAL); -- 2.43.0