diff --git a/srpt/src/ib_srpt.c b/srpt/src/ib_srpt.c index d3e4f08f2..9fc30a20f 100644 --- a/srpt/src/ib_srpt.c +++ b/srpt/src/ib_srpt.c @@ -1970,21 +1970,17 @@ static void srpt_process_completion(struct ib_cq *cq, EXTRACHECKS_WARN_ON(cq != ch->cq); - do { - while ((n = ib_poll_cq(cq, ARRAY_SIZE(wc), wc)) > 0) { - for (i = 0; i < n; i++) { - if (wc[i].wr_id & SRPT_OP_RECV) - srpt_process_rcv_completion(cq, ch, - context, - &wc[i]); - else - srpt_process_send_completion(cq, ch, - context, - &wc[i]); - } + ib_req_notify_cq(cq, IB_CQ_NEXT_COMP); + while ((n = ib_poll_cq(cq, ARRAY_SIZE(wc), wc)) > 0) { + for (i = 0; i < n; i++) { + if (wc[i].wr_id & SRPT_OP_RECV) + srpt_process_rcv_completion(cq, ch, context, + &wc[i]); + else + srpt_process_send_completion(cq, ch, context, + &wc[i]); } - } while (ib_req_notify_cq(cq, IB_CQ_NEXT_COMP - | IB_CQ_REPORT_MISSED_EVENTS) > 0); + } } /**