Message ID | 20201001181402.28327-1-ferruh.yigit@intel.com |
---|---|
State | Accepted, archived |
Delegated to: | Ferruh Yigit |
Headers | show |
Series |
|
Related | show |
Context | Check | Description |
---|---|---|
ci/iol-testing | warning | Testing issues |
ci/iol-mellanox-Performance | success | Performance Testing PASS |
ci/travis-robot | success | Travis build: passed |
ci/iol-intel-Performance | success | Performance Testing PASS |
ci/iol-intel-Functional | success | Functional Testing PASS |
ci/iol-broadcom-Functional | success | Functional Testing PASS |
ci/Intel-compilation | success | Compilation OK |
ci/iol-broadcom-Performance | success | Performance Testing PASS |
ci/checkpatch | success | coding style OK |
On Thu, Oct 1, 2020 at 11:14 AM Ferruh Yigit <ferruh.yigit@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.yigit@intel.com> Reviewed-by: Ajit Khaparde <ajit.khaparde@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 >
On 10/1/2020 8:40 PM, Ajit Khaparde wrote: > On Thu, Oct 1, 2020 at 11:14 AM Ferruh Yigit <ferruh.yigit@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.yigit@intel.com> > > Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com> > Applied to dpdk-next-net/main, thanks.
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",
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.yigit@intel.com> --- lib/librte_ethdev/rte_ethdev.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)