> -----Original Message----- > From: Wodkowski, PawelX > Sent: Thursday, March 19, 2015 4:09 PM > To: dev at dpdk.org > Cc: De Lara Guarch, Pablo; Ananyev, Konstantin; Mcnamara, John; Zhang, Helin; > Wodkowski, PawelX > Subject: [PATCH] ixgbe: fix buffer overrun bug in non-bulk alloc mode setup > > From: Pawel Wodkowski <pawelx.wdkowski at intel.com> > > When bulk alloc is enabled at compile time but preconditions for > it are not met at runtime the ixgbe_reset_rx_queue() function > overrides rxq->sw_ring not allocated elements. > > Fixes: 01fa1d6 ("ixgbe: unify Rx setup") > Signed-off-by: Pawel Wodkowski <pawelx.wodkowski at intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev at intel.com> > --- > lib/librte_pmd_ixgbe/ixgbe_rxtx.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c > b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c > index 42f0aa5..dddc12f 100644 > --- a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c > +++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c > @@ -2111,8 +2111,8 @@ ixgbe_reset_rx_queue(struct ixgbe_hw *hw, struct > ixgbe_rx_queue *rxq) > * entries is always allocated > */ > memset(&rxq->fake_mbuf, 0x0, sizeof(rxq->fake_mbuf)); > - for (i = 0; i < RTE_PMD_IXGBE_RX_MAX_BURST; ++i) { > - rxq->sw_ring[rxq->nb_rx_desc + i].mbuf = &rxq->fake_mbuf; > + for (i = rxq->nb_rx_desc; i < len; ++i) { > + rxq->sw_ring[i].mbuf = &rxq->fake_mbuf; > } > > rxq->rx_nb_avail = 0; > -- > 1.9.1