In the event of a device reconfigure, "hdls_avail" is not being reset. This
can lead to miscalculations in rte_ioat_completed_ops(), causing the
function to report an incorrect amount of completed operations. This patch
fixes the issue by resetting "hdls_avail" during the device configure.

Fixes: 74464005a2af ("raw/ioat: rework SW ring layout")

Signed-off-by: Kevin Laatz <kevin.la...@intel.com>
---
 drivers/raw/ioat/ioat_common.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/raw/ioat/ioat_common.c b/drivers/raw/ioat/ioat_common.c
index f4771745cc..60de41152a 100644
--- a/drivers/raw/ioat/ioat_common.c
+++ b/drivers/raw/ioat/ioat_common.c
@@ -174,6 +174,7 @@ idxd_dev_configure(const struct rte_rawdev *dev,
        }
        rte_idxd->hdls_read = rte_idxd->batch_start = 0;
        rte_idxd->batch_size = 0;
+       rte_idxd->hdls_avail = 0;
 
        return 0;
 }
-- 
2.25.1

Reply via email to