]> git.droids-corp.org - dpdk.git/commitdiff
eventdev/eth_tx: fix queue add error code
authorNaga Harish K S V <s.v.naga.harish.k@intel.com>
Wed, 9 Feb 2022 05:31:51 +0000 (23:31 -0600)
committerJerin Jacob <jerinj@marvell.com>
Mon, 14 Feb 2022 15:23:49 +0000 (16:23 +0100)
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")
Cc: stable@dpdk.org
Signed-off-by: Naga Harish K S V <s.v.naga.harish.k@intel.com>
Acked-by: Jay Jayatheerthan <jay.jayatheerthan@intel.com>
lib/eventdev/rte_event_eth_tx_adapter.c

index c17f33f09890102e79d54fff31da69a3bebb5a51..1b304f0a73d6b9146cfc92f603f7ce3b2884225c 100644 (file)
@@ -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,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,
@@ -844,7 +848,7 @@ err_unlock:
        }
 
        rte_spinlock_unlock(&txa->tx_lock);
-       return 0;
+       return -1;
 }
 
 static int