From: Tomasz Jonak <tom...@graphiant.com>

In case rte_eth_dma_zone_reserve fails in ice_tx_queue_setup
ice_tx_queue_release is called on 0 allocated but not initialized
txq struct.
This may happen on ENOMEM condition, size exhaustion of
memconfig->memzones array as well as some others.

Signed-off-by: Tomasz Jonak <tom...@graphiant.com>
---
 drivers/net/ice/ice_rxtx.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c
index 697251c603..953ff217df 100644
--- a/drivers/net/ice/ice_rxtx.c
+++ b/drivers/net/ice/ice_rxtx.c
@@ -1302,7 +1302,8 @@ ice_rx_queue_release(void *rxq)
                return;
        }
 
-       q->rx_rel_mbufs(q);
+       if (q->rx_rel_mbufs != NULL)
+               q->rx_rel_mbufs(q);
        rte_free(q->sw_ring);
        rte_memzone_free(q->mz);
        rte_free(q);
@@ -1512,7 +1513,8 @@ ice_tx_queue_release(void *txq)
                return;
        }
 
-       q->tx_rel_mbufs(q);
+       if (q->tx_rel_mbufs != NULL)
+               q->tx_rel_mbufs(q);
        rte_free(q->sw_ring);
        rte_memzone_free(q->mz);
        rte_free(q);
-- 
2.38.0

Reply via email to