net/bnxt: fix mbuf free when clearing Tx queue
Checks
Commit Message
When freeing pending transmit mbufs, use rte_pktmbuf_free_seg()
instead of rte_pktmbuf_free(), otherwise linked mbufs may be freed
more than once.
Fixes: 6eb3cc2294fd ("net/bnxt: add initial Tx code")
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Signed-off-by: Lance Richardson <lance.richardson@broadcom.com>
---
drivers/net/bnxt/bnxt_txq.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
On Wed, Oct 23, 2019 at 10:27 AM Lance Richardson <
lance.richardson@broadcom.com> wrote:
> When freeing pending transmit mbufs, use rte_pktmbuf_free_seg()
> instead of rte_pktmbuf_free(), otherwise linked mbufs may be freed
> more than once.
>
> Fixes: 6eb3cc2294fd ("net/bnxt: add initial Tx code")
> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
> Signed-off-by: Lance Richardson <lance.richardson@broadcom.com>
>
Patch applied to dpdk-next-net-brcm
@@ -34,7 +34,7 @@ static void bnxt_tx_queue_release_mbufs(struct bnxt_tx_queue *txq)
if (sw_ring) {
for (i = 0; i < txq->tx_ring->tx_ring_struct->ring_size; i++) {
if (sw_ring[i].mbuf) {
- rte_pktmbuf_free(sw_ring[i].mbuf);
+ rte_pktmbuf_free_seg(sw_ring[i].mbuf);
sw_ring[i].mbuf = NULL;
}
}