sync patches from 22.07 for hns3, dma and testpmd etc. Signed-off-by: Dongdong Liu <liudongdong3@huawei.com> (cherry picked from commit 7beb6a72fff2920a2d993030b0b02822249707fb)
55 lines
1.5 KiB
Diff
55 lines
1.5 KiB
Diff
From efe4049f48dd09ea069354f7e515bf7d81aa0f92 Mon Sep 17 00:00:00 2001
|
|
From: Chengwen Feng <fengchengwen@huawei.com>
|
|
Date: Fri, 27 May 2022 11:40:52 +0800
|
|
Subject: [PATCH 102/122] dma/hisilicon: fix index returned when no DMA
|
|
completed
|
|
|
|
If no DMA request is completed, the ring_idx of the last completed
|
|
operation need returned by last_idx parameter. This patch fixes it.
|
|
|
|
Fixes: 2db4f0b82360 ("dma/hisilicon: add data path")
|
|
Cc: stable@dpdk.org
|
|
|
|
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
|
|
---
|
|
drivers/dma/hisilicon/hisi_dmadev.c | 8 ++++----
|
|
1 file changed, 4 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/drivers/dma/hisilicon/hisi_dmadev.c b/drivers/dma/hisilicon/hisi_dmadev.c
|
|
index 9cef2cbfbe..f5c3cd914d 100644
|
|
--- a/drivers/dma/hisilicon/hisi_dmadev.c
|
|
+++ b/drivers/dma/hisilicon/hisi_dmadev.c
|
|
@@ -702,12 +702,12 @@ hisi_dma_completed(void *dev_private,
|
|
}
|
|
sq_head = (sq_head + 1) & hw->sq_depth_mask;
|
|
}
|
|
+ *last_idx = hw->cridx + i - 1;
|
|
if (i > 0) {
|
|
hw->cridx += i;
|
|
- *last_idx = hw->cridx - 1;
|
|
hw->sq_head = sq_head;
|
|
+ hw->completed += i;
|
|
}
|
|
- hw->completed += i;
|
|
|
|
return i;
|
|
}
|
|
@@ -761,12 +761,12 @@ hisi_dma_completed_status(void *dev_private,
|
|
hw->status[sq_head] = HISI_DMA_STATUS_SUCCESS;
|
|
sq_head = (sq_head + 1) & hw->sq_depth_mask;
|
|
}
|
|
+ *last_idx = hw->cridx + cpl_num - 1;
|
|
if (likely(cpl_num > 0)) {
|
|
hw->cridx += cpl_num;
|
|
- *last_idx = hw->cridx - 1;
|
|
hw->sq_head = sq_head;
|
|
+ hw->completed += cpl_num;
|
|
}
|
|
- hw->completed += cpl_num;
|
|
|
|
return cpl_num;
|
|
}
|
|
--
|
|
2.22.0
|
|
|