IB/cq: Don't process more than the given budget
The caller might not want this overhead. Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com> Reviewed-by: Leon Romanovsky <leonro@mellanox.com> Signed-off-by: Sagi Grimberg <sagi@grimberg.me> Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
parent
9fcd67d177
commit
fedd9e1f75
|
@ -29,7 +29,13 @@ static int __ib_process_cq(struct ib_cq *cq, int budget)
|
|||
{
|
||||
int i, n, completed = 0;
|
||||
|
||||
while ((n = ib_poll_cq(cq, IB_POLL_BATCH, cq->wc)) > 0) {
|
||||
/*
|
||||
* budget might be (-1) if the caller does not
|
||||
* want to bound this call, thus we need unsigned
|
||||
* minimum here.
|
||||
*/
|
||||
while ((n = ib_poll_cq(cq, min_t(u32, IB_POLL_BATCH,
|
||||
budget - completed), cq->wc)) > 0) {
|
||||
for (i = 0; i < n; i++) {
|
||||
struct ib_wc *wc = &cq->wc[i];
|
||||
|
||||
|
|
Loading…
Reference in New Issue