Upon completion of a work request on the recieve queue the 
IW_CXGB4 driver was incorrectly posting a completion back to
the recieve queue instead of the send queue. This resulted in 
hanging worker threads because they were never notified that
the work requests were completed.

This change fixes the logic so that insert_recv_cqe posts
to the correct queue.

Signed-off by: Jonathan Lallinger <jonat...@ogc.us>
Signed-off by: Steve Wise <sw...@ogc.us>
---

 drivers/infiniband/hw/cxgb4/cq.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/infiniband/hw/cxgb4/cq.c b/drivers/infiniband/hw/cxgb4/cq.c
index 1720dc7..901c5fb 100644
--- a/drivers/infiniband/hw/cxgb4/cq.c
+++ b/drivers/infiniband/hw/cxgb4/cq.c
@@ -185,7 +185,7 @@ static void insert_recv_cqe(struct t4_wq *wq, struct t4_cq 
*cq)
                                 V_CQE_OPCODE(FW_RI_SEND) |
                                 V_CQE_TYPE(0) |
                                 V_CQE_SWCQE(1) |
-                                V_CQE_QPID(wq->rq.qid));
+                                V_CQE_QPID(wq->sq.qid));
        cqe.bits_type_ts = cpu_to_be64(V_CQE_GENBIT((u64)cq->gen));
        cq->sw_queue[cq->sw_pidx] = cqe;
        t4_swcq_produce(cq);

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to