[ofa-general] Re: [PATCH 1 of 2] mlx4: implement query-qp
Jack Morgenstein
jackm at dev.mellanox.co.il
Sun Jul 15 00:28:23 PDT 2007
On Friday 13 July 2007 01:39, Roland Dreier wrote:
> thanks, applied
>
Need 2 fixes to this patch (sorry about that).
- Jack
2 fixes for mlx4-query-qp.patch:
1. Flow label field is 20 bits, not 24 bits. Need appropriate mask.
2. When the QP is in the INIT state, the sched_queue field is not yet available
in the firmware, so the f/w cannot provide the port number in query_qp. In this
case, need to use the port number which was saved in the kernel qp object.
Found by Dotan Barak and Yaron Gepstein of Mellanox.
Signed-off-by: Jack Morgenstein <jackm at dev.mellanox.co.il>
--- kernel_patches/fixes/mlx4-query-qp.patch 2007-07-15 10:04:02.678561000 +0300
+++ kernel_patches/fixes/mlx4-query-qp.patch 2007-07-15 10:07:13.883508000 +0300
@@ -102,7 +101,7 @@ Index: new_connectx_kernel/drivers/infin
+ ib_ah_attr->grh.traffic_class =
+ (be32_to_cpu(path->tclass_flowlabel) >> 20) & 0xff;
+ ib_ah_attr->grh.flow_label =
-+ be32_to_cpu(path->tclass_flowlabel) & 0xffffff;
++ be32_to_cpu(path->tclass_flowlabel) & 0xfffff;
+ memcpy(ib_ah_attr->grh.dgid.raw,
+ path->rgid, sizeof ib_ah_attr->grh.dgid.raw);
+ }
@@ -147,7 +146,10 @@ Index: new_connectx_kernel/drivers/infin
+ }
+
+ qp_attr->pkey_index = context.pri_path.pkey_index & 0x7f;
-+ qp_attr->port_num = context.pri_path.sched_queue & 0x40 ? 2 : 1;
++ if (qp_attr->qp_state == IB_QPS_INIT)
++ qp_attr->port_num = qp->port;
++ else
++ qp_attr->port_num = context.pri_path.sched_queue & 0x40 ? 2 : 1;
+
+ /* qp_attr->en_sqd_async_notify is only applicable in modify qp */
+ qp_attr->sq_draining = mlx4_state == MLX4_QP_STATE_SQ_DRAINING;
More information about the general
mailing list