enhance the cq arming code to support IB_CQ_REPORT_MISSED_EVENTS

Signed-off-by: Or Gerlitz <[email protected]>

----

I noted that the IB_CQ_REPORT_MISSED_EVENTS flag was added in the same cycle 
with mlx4
and maybe as of this, mlx4 didn't implement the flag, which is used by IPoIB

The patch is compile tested only, if the patch seems okay, I can conduct 
further testing.

diff --git a/drivers/infiniband/hw/mlx4/cq.c b/drivers/infiniband/hw/mlx4/cq.c
index 5a219a2..4366811 100644
--- a/drivers/infiniband/hw/mlx4/cq.c
+++ b/drivers/infiniband/hw/mlx4/cq.c
@@ -755,6 +755,13 @@ int mlx4_ib_arm_cq(struct ib_cq *ibcq, enum 
ib_cq_notify_flags flags)
                    to_mdev(ibcq->device)->uar_map,
                    MLX4_GET_DOORBELL_LOCK(&to_mdev(ibcq->device)->uar_lock));
 
+       if (flags & IB_CQ_REPORT_MISSED_EVENTS) {
+               struct mlx4_cqe *cqe;
+               cqe = next_cqe_sw(to_mcq(ibcq));
+               if (cqe)
+                       return 1;
+       }
+
        return 0;
 }
 
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to