On Thu, Oct 1, 2020 at 11:14 AM Ferruh Yigit <ferruh.yi...@intel.com> wrote: > > 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>
Reviewed-by: Ajit Khaparde <ajit.khapa...@broadcom.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 >