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.
Unified · Split
| @@ -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); |