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