Vlad,

Please pull in these fixes for bugs 663/664 from

git://git.openfabrics.org/~swise/ofed_1_2 ofed_1_2

Thanks,

Steve.

git-log

commit bd3a007a1432ded7d5d538d2125249d111c2644f
Author: Steve Wise <[EMAIL PROTECTED]>
Date:   Sat Jun 16 15:48:28 2007 -0500

    Don't count neg_adv abort_req_rss messages as real aborts.

    negative advice messages should _not_ count toward the 2 abort requests
    needed to indicate an abort request.

    Signed-off-by: Steve Wise <[EMAIL PROTECTED]>

diff --git a/drivers/infiniband/hw/cxgb3/iwch_cm.c 
b/drivers/infiniband/hw/cxgb3/iwch_cm.c
index ed56d55..a654bd5 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_cm.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_cm.c
@@ -1464,6 +1464,13 @@ static int peer_abort(struct t3cdev *tde
        int ret;
        int state;

+       if (is_neg_adv_abort(req->status)) {
+               PDBG("%s neg_adv_abort ep %p tid %d\n", __FUNCTION__, ep,
+                    ep->hwtid);
+               t3_l2t_send_event(ep->com.tdev, ep->l2t);
+               return CPL_RET_BUF_DONE;
+       }
+
        /*
         * We get 2 peer aborts from the HW.  The first one must
         * be ignored except for scribbling that we need one more.
@@ -1473,13 +1480,6 @@ static int peer_abort(struct t3cdev *tde
                return CPL_RET_BUF_DONE;
        }

-       if (is_neg_adv_abort(req->status)) {
-               PDBG("%s neg_adv_abort ep %p tid %d\n", __FUNCTION__, ep,
-                    ep->hwtid);
-               t3_l2t_send_event(ep->com.tdev, ep->l2t);
-               return CPL_RET_BUF_DONE;
-       }
-
        state = state_read(&ep->com);
        PDBG("%s ep %p state %u\n", __FUNCTION__, ep, state);
        switch (state) {

commit 70549f1d9b8d0420bd97111d3c73973723a88a9c
Author: Steve Wise <[EMAIL PROTECTED]>
Date:   Fri Jun 15 11:44:40 2007 -0500

    TERMINATE WRs can hang the tx ofld queue.

    Don't set the gen bits nor length bits in the terminate wr.  This is
    done by the LLD driver.

    Signed-off-by: Steve Wise <[EMAIL PROTECTED]>

diff --git a/drivers/infiniband/hw/cxgb3/iwch_qp.c 
b/drivers/infiniband/hw/cxgb3/iwch_qp.c
index 162d1fa..431a7e8 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_qp.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_qp.c
@@ -630,9 +630,9 @@ int iwch_post_terminate(struct iwch_qp *
        /* immediate data starts here. */
        term = (struct terminate_message *)wqe->send.sgl;
        build_term_codes(rsp_msg, &term->layer_etype, &term->ecode);
-       build_fw_riwrh((void *)wqe, T3_WR_SEND,
-                      T3_COMPLETION_FLAG | T3_NOTIFY_FLAG, 1,
-                      qhp->ep->hwtid, 5);
+       wqe->send.wrh.op_seop_flags = cpu_to_be32(V_FW_RIWR_OP(T3_WR_SEND) |
+                        V_FW_RIWR_FLAGS(T3_COMPLETION_FLAG | T3_NOTIFY_FLAG));
+       wqe->send.wrh.gen_tid_len = cpu_to_be32(V_FW_RIWR_TID(qhp->ep->hwtid));
        skb->priority = CPL_PRIORITY_DATA;
        return (cxgb3_ofld_send(qhp->rhp->rdev.t3cdev_p, skb));
 }
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to