From: Edwin Brossette <edwin.brosse...@6wind.com> As per the rte_mbuf API: the driver is responsible of initializing all the required fields. This is not done at qede alloc, meaning there can be garbage data in mbufs memory, although this garbage data should be overwritten when the mbufs are used. Since a sanity check is done when freeing the queues, its possible some remaining garbage data causes a panic when trying to release the queues if some mbufs are being processed.
Use rte_pktmbuf_raw_free() instead of rte_pktmbuf_free() as the sanity check is more relaxed. Fixes: 2ea6f76aff40 ("qede: add core driver") CC: sta...@dpdk.org Signed-off-by: Edwin Brossette <edwin.brosse...@6wind.com> Acked-by: Didier Pallard <didier.pall...@6wind.com> --- drivers/net/qede/qede_rxtx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/qede/qede_rxtx.c b/drivers/net/qede/qede_rxtx.c index c764e3d83763..601fcb30b357 100644 --- a/drivers/net/qede/qede_rxtx.c +++ b/drivers/net/qede/qede_rxtx.c @@ -305,7 +305,7 @@ static void qede_rx_queue_release_mbufs(struct qede_rx_queue *rxq) if (rxq->sw_rx_ring) { for (i = 0; i < rxq->nb_rx_desc; i++) { if (rxq->sw_rx_ring[i]) { - rte_pktmbuf_free(rxq->sw_rx_ring[i]); + rte_mbuf_raw_free(rxq->sw_rx_ring[i]); rxq->sw_rx_ring[i] = NULL; } } -- 2.35.0.4.g44a5d4affccf