diff mbox

ofed_kernel/net/rds/ib_send.c

Message ID 20110211214255.27586.4904.stgit@kop-sds-dev-02.qlogic.org (mailing list archive)
State Not Applicable
Headers show

Commit Message

Michael Heinz Feb. 11, 2011, 9:42 p.m. UTC
None
diff mbox

Patch

diff --git a/net/rds/ib_send.c b/net/rds/ib_send.c
index 71f373c..61a317e 100644
--- a/net/rds/ib_send.c
+++ b/net/rds/ib_send.c
@@ -286,10 +286,8 @@  void rds_ib_send_cq_comp_handler(struct ib_cq *cq, void *context)
 
 	rdsdebug("cq %p conn %p\n", cq, conn);
 	rds_ib_stats_inc(s_ib_tx_cq_call);
-	ret = ib_req_notify_cq(cq, IB_CQ_NEXT_COMP);
-	if (ret)
-		rdsdebug("ib_req_notify_cq send failed: %d\n", ret);
 
+again:
 	while (ib_poll_cq(cq, 1, &wc) > 0) {
 		rdsdebug("wc wr_id 0x%llx status %u (%s) byte_len %u imm_data %u\n",
 			 (unsigned long long)wc.wr_id, wc.status,
@@ -347,6 +345,12 @@  void rds_ib_send_cq_comp_handler(struct ib_cq *cq, void *context)
 					  rds_ib_wc_status_str(wc.status));
 		}
 	}
+	ret = ib_req_notify_cq(cq, IB_CQ_NEXT_COMP |
+				   IB_CQ_REPORT_MISSED_EVENTS);
+	if (ret > 0)
+		goto again;
+	if (ret < 0)
+		rdsdebug("ib_req_notify_cq send failed: %d\n", ret);
 }
 
 /*