ixgbe: fix release queue mbufs
authorKonstantin Ananyev <konstantin.ananyev@intel.com>
Fri, 24 Jul 2015 13:58:13 +0000 (14:58 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Sun, 26 Jul 2015 08:47:51 +0000 (10:47 +0200)
commit11b220c6498dc4a35e3d5061ad18cbdd13f9bc38
treedd205fa522ef5079a49ae3e327eda4c92a81c8ab
parentae77d1fbffa55109bd7c5c1935848a8dabeaf726
ixgbe: fix release queue mbufs

The calculations of what mbufs were valid in the RX and TX queues were
incorrect when freeing the mbufs for the vector PMD. This led to crashes
due to invalid reference counts when mbuf debugging was turned on, and
possibly other more subtle problems (such as mbufs being freed when in use)
in other cases.

To fix this, the following changes were made:
* correct counts and post-loop values in the TX release function for the
  vector code.
* create a new separate RX release function for the RX vector code, since the
  tracking of what mbufs are valid or not is different for that code path

Fixes: c95584dc2b18 ("ixgbe: new vectorized functions for Rx/Tx")

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
drivers/net/ixgbe/ixgbe_rxtx.c
drivers/net/ixgbe/ixgbe_rxtx.h
drivers/net/ixgbe/ixgbe_rxtx_vec.c