net/ena: fix cleanup for out of order packets
authorRafal Kozik <rk@semihalf.com>
Mon, 17 Dec 2018 11:06:18 +0000 (12:06 +0100)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 21 Dec 2018 15:22:40 +0000 (16:22 +0100)
commit709b1dcb73adebb3fc1a838b57d72028feb97e47
treedf330bd8c9df15a60fdb122e050094865b882665
parenteccbe2ffdc755a9e759c6ba480f6c15ccb1163c7
net/ena: fix cleanup for out of order packets

When wrong req_id is detected some previous mbufs could be used for
receiving different segments of received packets. In such cases chained
mbufs will be twice returned to pool.

To prevent it chained mbuf is now freed just after error detection.

To simplify cleaning, pointers taken for Rx ring are set to NULL.

As after ena_rx_queue_release_bufs and ena_tx_queue_release_bufs queues
are not used updating of next_to_clean pointer is not necessary.

Fixes: c2034976673d ("net/ena: add Rx out of order completion")
Cc: stable@dpdk.org
Signed-off-by: Rafal Kozik <rk@semihalf.com>
Acked-by: Michal Krawczyk <mk@semihalf.com>
drivers/net/ena/ena_ethdev.c