History

RDMA/mlx5: Don't rely on FW to set zeros in ECE response

The FW returns zeros in case feature is not enabled, but it is better to have the capability check and ensure that returned result is cleared.

Leon Romanovsky committed 6 years ago

Commit 92cd6671 parent 6512f111 file · +4 −2Browse files

Unified · Split

drivers/infiniband/hw/mlx5/qp.c+4−2
@@ -1906,7 +1906,8 @@ static int create_xrc_tgt_qp(struct mlx5_ib_dev *dev, struct mlx5_ib_qp *qp, · 1905 unmodified lines
1906 1906
1907 base->container_mibqp = qp;1907 base->container_mibqp = qp;
1908 base->mqp.event = mlx5_ib_qp_event;1908 base->mqp.event = mlx5_ib_qp_event;
1909 params->resp.ece_options = MLX5_GET(create_qp_out, out, ece);1909 if (MLX5_CAP_GEN(mdev, ece_support))
1910 params->resp.ece_options = MLX5_GET(create_qp_out, out, ece);
1910 1911
1911 spin_lock_irqsave(&dev->reset_flow_resource_lock, flags);1912 spin_lock_irqsave(&dev->reset_flow_resource_lock, flags);
1912 list_add_tail(&qp->qps_list, &dev->qp_list);1913 list_add_tail(&qp->qps_list, &dev->qp_list);
@@ -2082,7 +2083,8 @@ static int create_user_qp(struct mlx5_ib_dev *dev, struct ib_pd *pd, · 169 unmodified lines
2082 2083
2083 base->container_mibqp = qp;2084 base->container_mibqp = qp;
2084 base->mqp.event = mlx5_ib_qp_event;2085 base->mqp.event = mlx5_ib_qp_event;
2085 params->resp.ece_options = MLX5_GET(create_qp_out, out, ece);2086 if (MLX5_CAP_GEN(mdev, ece_support))
2087 params->resp.ece_options = MLX5_GET(create_qp_out, out, ece);
2086 2088
2087 get_cqs(qp->type, init_attr->send_cq, init_attr->recv_cq,2089 get_cqs(qp->type, init_attr->send_cq, init_attr->recv_cq,
2088 &send_cq, &recv_cq);2090 &send_cq, &recv_cq);