raw/ioat: fix missing ring pointer reset
authorKevin Laatz <kevin.laatz@intel.com>
Thu, 17 Jun 2021 14:18:15 +0000 (14:18 +0000)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 22 Jun 2021 21:12:47 +0000 (23:12 +0200)
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")
Cc: stable@dpdk.org
Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
drivers/raw/ioat/ioat_common.c

index f477174..60de411 100644 (file)
@@ -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;
 }