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