The internal function txa_service_queue_add is returning 0 in case of error.
correct this logic to return negative value to indicate failure.

Fixes: a3bbf2e09756 ("eventdev: add eth Tx adapter implementation")

Signed-off-by: Naga Harish K S V <s.v.naga.haris...@intel.com>
---
 lib/eventdev/rte_event_eth_tx_adapter.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/lib/eventdev/rte_event_eth_tx_adapter.c 
b/lib/eventdev/rte_event_eth_tx_adapter.c
index c17f33f098..49053e6bea 100644
--- a/lib/eventdev/rte_event_eth_tx_adapter.c
+++ b/lib/eventdev/rte_event_eth_tx_adapter.c
@@ -806,10 +806,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)
@@ -821,6 +819,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;
@@ -836,6 +836,9 @@ 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,
@@ -844,7 +847,7 @@ txa_service_queue_add(uint8_t id,
        }
 
        rte_spinlock_unlock(&txa->tx_lock);
-       return 0;
+       return -1;
 }
 
 static int
-- 
2.23.0

Reply via email to