IB/mlx5: Fix port counter ID association to QP offset
authorAlex Vesker <valex@mellanox.com>
Wed, 13 Jul 2016 13:25:11 +0000 (16:25 +0300)
committerDoug Ledford <dledford@redhat.com>
Tue, 2 Aug 2016 18:40:49 +0000 (14:40 -0400)
The q-counter-id is given in modify-QP command associates
the QP with the counter. The offset to which the counter
ID was set is incorrect, causing IB port counters not to
count on QP.

Fixes: 0837e86a7a34 ('IB/mlx5: Add per port counters')
Signed-off-by: Alex Vesker <valex@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Tested-by: Mark Bloch <markb@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/mlx5/qp.c

index 5ca14a22868f6fa44e6842282871516add48a35e..40b204551e5735185be6b61d41b4c5506c4e1c1f 100644 (file)
@@ -2657,7 +2657,7 @@ static int __mlx5_ib_modify_qp(struct ib_qp *ibqp,
                struct mlx5_ib_port *mibport = &dev->port[port_num];
 
                context->qp_counter_set_usr_page |=
-                       cpu_to_be32(mibport->q_cnt_id << 16);
+                       cpu_to_be32((u32)(mibport->q_cnt_id) << 24);
        }
 
        if (!ibqp->uobject && cur_state == IB_QPS_RESET && new_state == IB_QPS_INIT)