net/mlx5: fix crash when setting hairpin queues
If configuring the number of tx/rx queue with rte_eth_dev_configure
to nr_queues + hairpin_nr_queues, and setting tx/rx queues to
nr_queues with rte_eth_tx/rx_queue_setup. But not configuring the
hairpin queues via rte_eth_tx/rx_hairpin_queue_setup.
When starting the netdev, there is a crash because of NULL accessing.
Fixes: cf5516696d
("ethdev: add hairpin queue")
Cc: stable@dpdk.org
Signed-off-by: Tonghao Zhang <xiangxia.m.yue@gmail.com>
Acked-by: Ori Kam <orika@mellanox.com>
This commit is contained in:
parent
ddc7cb0d94
commit
bf864e8205
@ -476,7 +476,7 @@ mlx5_dev_configure_rss_reta(struct rte_eth_dev *dev)
|
||||
|
||||
rxq_data = (*priv->rxqs)[i];
|
||||
rxq_ctrl = container_of(rxq_data, struct mlx5_rxq_ctrl, rxq);
|
||||
if (rxq_ctrl->type == MLX5_RXQ_TYPE_STANDARD)
|
||||
if (rxq_ctrl && rxq_ctrl->type == MLX5_RXQ_TYPE_STANDARD)
|
||||
rss_queue_arr[j++] = i;
|
||||
}
|
||||
rss_queue_n = j;
|
||||
|
@ -106,9 +106,12 @@ mlx5_rxq_start(struct rte_eth_dev *dev)
|
||||
unsigned int i;
|
||||
int ret = 0;
|
||||
enum mlx5_rxq_obj_type obj_type = MLX5_RXQ_OBJ_TYPE_IBV;
|
||||
struct mlx5_rxq_data *rxq = NULL;
|
||||
|
||||
for (i = 0; i < priv->rxqs_n; ++i) {
|
||||
if ((*priv->rxqs)[i]->lro) {
|
||||
rxq = (*priv->rxqs)[i];
|
||||
|
||||
if (rxq && rxq->lro) {
|
||||
obj_type = MLX5_RXQ_OBJ_TYPE_DEVX_RQ;
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user