The mlx5_rxq_is_hairpin() function checks whether RxQ type is Hairpin. It is done by reading a flag in Rx control structure coming from mlx5_rxq_ctrl_get() function.
The function verifies that the queue index is valid even though it has been checked within the mlx5_rxq_ctrl_get() function. This patch removes the redundant check. Signed-off-by: Michael Baum <michae...@nvidia.com> Acked-by: Matan Azrad <ma...@nvidia.com> --- drivers/net/mlx5/mlx5_rxq.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c index d41834f46f..1782d52f71 100644 --- a/drivers/net/mlx5/mlx5_rxq.c +++ b/drivers/net/mlx5/mlx5_rxq.c @@ -2332,13 +2332,12 @@ mlx5_ext_rxq_verify(struct rte_eth_dev *dev) bool mlx5_rxq_is_hairpin(struct rte_eth_dev *dev, uint16_t idx) { - struct mlx5_priv *priv = dev->data->dev_private; struct mlx5_rxq_ctrl *rxq_ctrl; if (mlx5_is_external_rxq(dev, idx)) return false; rxq_ctrl = mlx5_rxq_ctrl_get(dev, idx); - return (idx < priv->rxqs_n && rxq_ctrl != NULL && rxq_ctrl->is_hairpin); + return (rxq_ctrl != NULL && rxq_ctrl->is_hairpin); } /* @@ -2355,9 +2354,12 @@ mlx5_rxq_is_hairpin(struct rte_eth_dev *dev, uint16_t idx) const struct rte_eth_hairpin_conf * mlx5_rxq_get_hairpin_conf(struct rte_eth_dev *dev, uint16_t idx) { - struct mlx5_rxq_priv *rxq = mlx5_rxq_get(dev, idx); + if (mlx5_rxq_is_hairpin(dev, idx)) { + struct mlx5_rxq_priv *rxq = mlx5_rxq_get(dev, idx); - return mlx5_rxq_is_hairpin(dev, idx) ? &rxq->hairpin_conf : NULL; + return rxq != NULL ? &rxq->hairpin_conf : NULL; + } + return NULL; } /** @@ -2367,7 +2369,7 @@ mlx5_rxq_get_hairpin_conf(struct rte_eth_dev *dev, uint16_t idx) * @param ind_tbl * Pointer to indirection table to match. * @param queues - * Queues to match to ques in indirection table. + * Queues to match to queues in indirection table. * @param queues_n * Number of queues in the array. * @@ -2376,11 +2378,11 @@ mlx5_rxq_get_hairpin_conf(struct rte_eth_dev *dev, uint16_t idx) */ static int mlx5_ind_table_obj_match_queues(const struct mlx5_ind_table_obj *ind_tbl, - const uint16_t *queues, uint32_t queues_n) + const uint16_t *queues, uint32_t queues_n) { - return (ind_tbl->queues_n == queues_n) && - (!memcmp(ind_tbl->queues, queues, - ind_tbl->queues_n * sizeof(ind_tbl->queues[0]))); + return (ind_tbl->queues_n == queues_n) && + (!memcmp(ind_tbl->queues, queues, + ind_tbl->queues_n * sizeof(ind_tbl->queues[0]))); } /** -- 2.25.1