[PATCH] IB/mthca: assign ACK timeout field correctly
authorRoland Dreier <rolandd@cisco.com>
Mon, 12 Sep 2005 21:08:51 +0000 (14:08 -0700)
committerRoland Dreier <rolandd@cisco.com>
Mon, 19 Sep 2005 05:02:37 +0000 (22:02 -0700)
The hardware reads the ACK timeout field from the most significant 5
bits of struct mthca_qp_path's ackto field, not the least significant
bits.  This fix has the driver put the timeout in the right place.
Without this, we get a timeout that is 2^8 times too small.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/hw/mthca/mthca_qp.c

index bcef06bf15e724c47aaedd013168be2bf9fe7d63..2c883c1fd53a6eb25c5ae0050884545fc73bfb89 100644 (file)
@@ -687,7 +687,7 @@ int mthca_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, int attr_mask)
        }
 
        if (attr_mask & IB_QP_TIMEOUT) {
-               qp_context->pri_path.ackto = attr->timeout;
+               qp_context->pri_path.ackto = attr->timeout << 3;
                qp_param->opt_param_mask |= cpu_to_be32(MTHCA_QP_OPTPAR_ACK_TIMEOUT);
        }