From: Bruce Richardson Date: Wed, 12 May 2021 14:50:00 +0000 (+0000) Subject: raw/ioat: remove special case for no status reporting X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=f6e896640a4482c8fd7fc35e11939cd9724bc0ab;p=dpdk.git raw/ioat: remove special case for no status reporting The special fast-path for returning completed descriptors without reporting status or user-handles returns the number of completed ring slots used, rather than the number of actual user-submitted jobs. This means that the counts returned are too high, as the batch descriptor slots would be included in the total. Therefore remove this special case, and use the normal status-processing path so that the returned count is correct in all cases. Fixes: 245efe544d8e ("raw/ioat: report status of completed jobs") Reported-by: Jiayu Hu Signed-off-by: Bruce Richardson Acked-by: Kevin Laatz --- diff --git a/drivers/raw/ioat/rte_idxd_rawdev_fns.h b/drivers/raw/ioat/rte_idxd_rawdev_fns.h index 0eea5368de..57548609e3 100644 --- a/drivers/raw/ioat/rte_idxd_rawdev_fns.h +++ b/drivers/raw/ioat/rte_idxd_rawdev_fns.h @@ -343,14 +343,6 @@ __idxd_completed_ops(int dev_id, uint8_t max_ops, uint32_t *status, uint8_t *num idxd->batch_idx_read = 0; } - if (idxd->cfg.hdls_disable && status == NULL) { - n = (idxd->hdls_avail < idxd->hdls_read) ? - (idxd->hdls_avail + idxd->desc_ring_mask + 1 - idxd->hdls_read) : - (idxd->hdls_avail - idxd->hdls_read); - idxd->hdls_read = idxd->hdls_avail; - goto out; - } - n = 0; h_idx = idxd->hdls_read; while (h_idx != idxd->hdls_avail) { @@ -386,7 +378,6 @@ __idxd_completed_ops(int dev_id, uint8_t max_ops, uint32_t *status, uint8_t *num } idxd->hdls_read = h_idx; -out: idxd->xstats.completed += n; return n; }