IPoIB/cm: Fix receive QP cleanup
authorRoland Dreier <rolandd@cisco.com>
Fri, 26 Oct 2007 20:44:25 +0000 (13:44 -0700)
committerRoland Dreier <rolandd@cisco.com>
Fri, 26 Oct 2007 20:44:25 +0000 (13:44 -0700)
Commit 1b524963 ("IPoIB/cm: Use common CQ for CM send completions")
changed how the high-order bits of work request IDs were used, which
had the effect that IPOIB_CM_RX_DRAIN_WRID was no longer handled as a
connected mode receive completion.  This leads to the messages

    ib1: cm send completion event with wrid 1073741823 (> 64)
    ib1: RX drain timing out

when an interface with connected mode QPs is brought down.  Fix this
by making sure that both IPOIB_OP_CM and IPOIB_OP_RECV are set in
IPOIB_CM_RX_DRAIN_WRID.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/ulp/ipoib/ipoib_cm.c

index 8761077..059cf92 100644 (file)
@@ -60,7 +60,7 @@ static struct ib_qp_attr ipoib_cm_err_attr = {
        .qp_state = IB_QPS_ERR
 };
 
-#define IPOIB_CM_RX_DRAIN_WRID 0x7fffffff
+#define IPOIB_CM_RX_DRAIN_WRID 0xffffffff
 
 static struct ib_send_wr ipoib_cm_rx_drain_wr = {
        .wr_id = IPOIB_CM_RX_DRAIN_WRID,