From ffe353bd2c26ec47011be7599c812f05aeb8bacd Mon Sep 17 00:00:00 2001 From: Radu Nicolau Date: Wed, 24 Jan 2018 13:11:13 +0000 Subject: [PATCH] net/bonding: check dequeue result before proceeding Coverity issue: 257015 Fixes: 09150784a776 ("net/bonding: burst mode hash calculation") Cc: stable@dpdk.org Signed-off-by: Radu Nicolau --- drivers/net/bonding/rte_eth_bond_pmd.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c index a86bcaf603..92ad688b18 100644 --- a/drivers/net/bonding/rte_eth_bond_pmd.c +++ b/drivers/net/bonding/rte_eth_bond_pmd.c @@ -1435,17 +1435,17 @@ bond_ethdev_tx_burst_8023ad(void *queue, struct rte_mbuf **bufs, if (likely(rte_ring_empty(port->tx_ring))) continue; - rte_ring_dequeue(port->tx_ring, (void **)&ctrl_pkt); - - slave_tx_count = rte_eth_tx_burst(slave_port_ids[i], + if (rte_ring_dequeue(port->tx_ring, + (void **)&ctrl_pkt) != -ENOENT) { + slave_tx_count = rte_eth_tx_burst(slave_port_ids[i], bd_tx_q->queue_id, &ctrl_pkt, 1); - - /* - * re-enqueue LAG control plane packets to buffering - * ring if transmission fails so the packet isn't lost. - */ - if (slave_tx_count != 1) - rte_ring_enqueue(port->tx_ring, ctrl_pkt); + /* + * re-enqueue LAG control plane packets to buffering + * ring if transmission fails so the packet isn't lost. + */ + if (slave_tx_count != 1) + rte_ring_enqueue(port->tx_ring, ctrl_pkt); + } } return total_tx_count; -- 2.20.1