Hi Roland,
What about this patch? Are you going to apply it?

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Eli Cohen
Sent: Wednesday, March 08, 2006 4:32 PM
To: Roland Dreier
Cc: [email protected]
Subject: [openib-general] [PATCH] mthca - query qp

1. Fix error flow - if status is not zero exit with error
2. Few more values extracted

Signed-off-by: Eli Cohen <[EMAIL PROTECTED]>

Index: last_stable/drivers/infiniband/hw/mthca/mthca_qp.c
===================================================================
--- last_stable.orig/drivers/infiniband/hw/mthca/mthca_qp.c
+++ last_stable/drivers/infiniband/hw/mthca/mthca_qp.c
@@ -427,6 +427,12 @@ int mthca_query_qp(struct ib_qp *ibqp, s
        if (err)
                goto out;
 
+       if (status) {
+               mthca_warn(dev, "QUERY_QP returned status %02x\n",
status);
+               err = -EINVAL;
+               goto out;
+       }
+
        qp_param    = mailbox->buf;
        context     = &qp_param->context;
        mthca_state = be32_to_cpu(context->flags) >> 28;
@@ -454,6 +460,9 @@ int mthca_query_qp(struct ib_qp *ibqp, s
        qp_attr->pkey_index     =
be32_to_cpu(context->pri_path.port_pkey) & 0x7f;
        qp_attr->alt_pkey_index =
be32_to_cpu(context->alt_path.port_pkey) & 0x7f;
 
+       qp_attr->timeout     = context->pri_path.ackto >> 3;
+       qp_attr->alt_timeout = context->alt_path.ackto >> 3;
+
        /* qp_attr->en_sqd_async_notify is only applicable in modify qp
*/
        qp_attr->sq_draining = mthca_state == MTHCA_QP_STATE_DRAINING;
 
@@ -469,7 +478,17 @@ int mthca_query_qp(struct ib_qp *ibqp, s
        qp_attr->rnr_retry          = context->pri_path.rnr_retry >> 5;
        qp_attr->alt_port_num       = qp_attr->alt_ah_attr.port_num;
        qp_attr->alt_timeout        = context->alt_path.ackto >> 3;
+
+       qp_init_attr->event_handler = ibqp->event_handler;
+       qp_init_attr->qp_context    = ibqp->qp_context;
+       qp_init_attr->send_cq       = ibqp->send_cq;
+       qp_init_attr->recv_cq       = ibqp->recv_cq;
+       qp_init_attr->srq           = ibqp->srq;
        qp_init_attr->cap           = qp_attr->cap;
+       qp_init_attr->sq_sig_type   = ((be32_to_cpu(context->params1) >>
3) & 0x1) ?
+               IB_SIGNAL_REQ_WR : IB_SIGNAL_ALL_WR;
+       qp_init_attr->qp_type       = ibqp->qp_type;
+       qp_init_attr->port_num      = qp_attr->ah_attr.port_num;
 
 out:
        mthca_free_mailbox(dev, mailbox);

_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit
http://openib.org/mailman/listinfo/openib-general
_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

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

Reply via email to