From 5d76457095c13677bfab501a3488de0c2bb5fa2e Mon Sep 17 00:00:00 2001 From: Naga Harish K S V Date: Tue, 8 Feb 2022 23:31:51 -0600 Subject: [PATCH] eventdev/eth_tx: fix queue add error code [ upstream commit bd0a32d14b87661c39130d73ab4323247b80f864 ] The internal function txa_service_queue_add() is returning 0 in case of error, correct this logic to return a negative value to indicate failure. Fixes: a3bbf2e09756 ("eventdev: add eth Tx adapter implementation") Signed-off-by: Naga Harish K S V Acked-by: Jay Jayatheerthan --- lib/librte_eventdev/rte_event_eth_tx_adapter.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/librte_eventdev/rte_event_eth_tx_adapter.c b/lib/librte_eventdev/rte_event_eth_tx_adapter.c index 2684eb4308..21155362f9 100644 --- a/lib/librte_eventdev/rte_event_eth_tx_adapter.c +++ b/lib/librte_eventdev/rte_event_eth_tx_adapter.c @@ -760,10 +760,8 @@ txa_service_queue_add(uint8_t id, rte_spinlock_lock(&txa->tx_lock); - if (txa_service_is_queue_added(txa, eth_dev, tx_queue_id)) { - rte_spinlock_unlock(&txa->tx_lock); - return 0; - } + if (txa_service_is_queue_added(txa, eth_dev, tx_queue_id)) + goto ret_unlock; ret = txa_service_queue_array_alloc(txa, eth_dev->data->port_id); if (ret) @@ -775,6 +773,8 @@ txa_service_queue_add(uint8_t id, tdi = &txa->txa_ethdev[eth_dev->data->port_id]; tqi = txa_service_queue(txa, eth_dev->data->port_id, tx_queue_id); + if (tqi == NULL) + goto err_unlock; txa_retry = &tqi->txa_retry; txa_retry->id = txa->id; @@ -790,6 +790,10 @@ txa_service_queue_add(uint8_t id, tdi->nb_queues++; txa->nb_queues++; +ret_unlock: + rte_spinlock_unlock(&txa->tx_lock); + return 0; + err_unlock: if (txa->nb_queues == 0) { txa_service_queue_array_free(txa, @@ -798,7 +802,7 @@ txa_service_queue_add(uint8_t id, } rte_spinlock_unlock(&txa->tx_lock); - return 0; + return -1; } static int