diff options
Diffstat (limited to 'drivers/infiniband/hw/mlx4/qp.c')
-rw-r--r-- | drivers/infiniband/hw/mlx4/qp.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c index 35cced2a4da8..4f10af2905b5 100644 --- a/drivers/infiniband/hw/mlx4/qp.c +++ b/drivers/infiniband/hw/mlx4/qp.c | |||
@@ -1292,6 +1292,8 @@ static int __mlx4_ib_modify_qp(struct ib_qp *ibqp, | |||
1292 | if (cur_state == IB_QPS_RESET && new_state == IB_QPS_INIT) { | 1292 | if (cur_state == IB_QPS_RESET && new_state == IB_QPS_INIT) { |
1293 | context->sq_size_stride |= !!qp->sq_no_prefetch << 7; | 1293 | context->sq_size_stride |= !!qp->sq_no_prefetch << 7; |
1294 | context->xrcd = cpu_to_be32((u32) qp->xrcdn); | 1294 | context->xrcd = cpu_to_be32((u32) qp->xrcdn); |
1295 | if (ibqp->qp_type == IB_QPT_RAW_PACKET) | ||
1296 | context->param3 |= cpu_to_be32(1 << 30); | ||
1295 | } | 1297 | } |
1296 | 1298 | ||
1297 | if (qp->ibqp.uobject) | 1299 | if (qp->ibqp.uobject) |
@@ -1458,6 +1460,10 @@ static int __mlx4_ib_modify_qp(struct ib_qp *ibqp, | |||
1458 | } | 1460 | } |
1459 | } | 1461 | } |
1460 | 1462 | ||
1463 | if (qp->ibqp.qp_type == IB_QPT_RAW_PACKET) | ||
1464 | context->pri_path.ackto = (context->pri_path.ackto & 0xf8) | | ||
1465 | MLX4_IB_LINK_TYPE_ETH; | ||
1466 | |||
1461 | if (cur_state == IB_QPS_RTS && new_state == IB_QPS_SQD && | 1467 | if (cur_state == IB_QPS_RTS && new_state == IB_QPS_SQD && |
1462 | attr_mask & IB_QP_EN_SQD_ASYNC_NOTIFY && attr->en_sqd_async_notify) | 1468 | attr_mask & IB_QP_EN_SQD_ASYNC_NOTIFY && attr->en_sqd_async_notify) |
1463 | sqd_event = 1; | 1469 | sqd_event = 1; |