net/ena: fix releasing Tx ring mbufs
authorDavid Harton <dharton@cisco.com>
Tue, 6 Apr 2021 00:27:19 +0000 (20:27 -0400)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 6 Apr 2021 17:37:45 +0000 (19:37 +0200)
commit3c8bc29fd07006338e3460b03655a772cd36a9e7
tree8501853d4feb1e82a482387320c82237c07994c3
parentde853a3bb15164e8a081bc9b2b94bb48cde63521
net/ena: fix releasing Tx ring mbufs

When ena_tx_queue_release_bufs() frees the mbufs it does not clear
the mbuf pointers.  So, when the device starts and stops multiple
times it can cause the application to receive duplicate mbufs for
two different packets.  Fix the issue by clearing the mbuf pointer.

Also, while tracking down the "double free" issue the ena calls to
allocate and free mbufs in bulk were migrated to the mbuf based APIs
so the common mbuf alloc/free routines are exercised.

Fixes: 79405ee17585 ("net/ena: fix out of order completion")
Fixes: 1173fca25af9 ("ena: add polling-mode driver")
Cc: stable@dpdk.org
Signed-off-by: David Harton <dharton@cisco.com>
Acked-by: Michal Krawczyk <mk@semihalf.com>
drivers/net/ena/ena_ethdev.c