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 <jiayu.hu@intel.com> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Kevin Laatz <kevin.laatz@intel.com>
This commit is contained in:
parent
dbc9ae665b
commit
f6e896640a
@ -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;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user