A crash is detected when '--txpkts=#' parameter provided to the testpmd, this is because queue information is requested before queues have been allocated.
Adding check to queue info APIs ('rte_eth_rx_queue_info_get()' & 'rte_eth_tx_queue_info_get') to protect against similar cases. Fixes: ba2fb4f022fc ("ethdev: check if queue setup when getting queue info") Signed-off-by: Ferruh Yigit <ferruh.yi...@intel.com> --- lib/librte_ethdev/rte_ethdev.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c index 0f56541fbc..9805184633 100644 --- a/lib/librte_ethdev/rte_ethdev.c +++ b/lib/librte_ethdev/rte_ethdev.c @@ -4688,7 +4688,8 @@ rte_eth_rx_queue_info_get(uint16_t port_id, uint16_t queue_id, return -EINVAL; } - if (dev->data->rx_queues[queue_id] == NULL) { + if (dev->data->rx_queues == NULL || + dev->data->rx_queues[queue_id] == NULL) { RTE_ETHDEV_LOG(ERR, "Rx queue %"PRIu16" of device with port_id=%" PRIu16" has not been setup\n", @@ -4727,7 +4728,8 @@ rte_eth_tx_queue_info_get(uint16_t port_id, uint16_t queue_id, return -EINVAL; } - if (dev->data->tx_queues[queue_id] == NULL) { + if (dev->data->tx_queues == NULL || + dev->data->tx_queues[queue_id] == NULL) { RTE_ETHDEV_LOG(ERR, "Tx queue %"PRIu16" of device with port_id=%" PRIu16" has not been setup\n", -- 2.26.2