> -----Original Message----- > From: dumitru.ceara at gmail.com [mailto:dumitru.ceara at gmail.com] > Sent: Tuesday, July 26, 2016 11:46 AM > To: dev at dpdk.org > Cc: Xing, Beilei <beilei.xing at intel.com>; Zhang, Helin <helin.zhang at > intel.com>; Wu, Jingjing <jingjing.wu at intel.com>; Ananyev, Konstantin > <konstantin.ananyev at intel.com>; Dumitru Ceara <dumitru.ceara at gmail.com> > Subject: [PATCH] net/i40e: fix setting RSS in i40e_recv_scattered_pkts > > From: Dumitru Ceara <dumitru.ceara at gmail.com> > > The driver is incorrectly setting the RSS field in the last mbuf in the > packet chain instead of the first. Moreover, the last mbuf might have > already been freed if it only contained the Ethernet CRC. > > Also, fix the call to i40e_rxd_build_fdir to store the fdir flags in the > first mbuf of the chain instead of the last. > > Signed-off-by: Dumitru Ceara <dumitru.ceara at gmail.com> > --- > drivers/net/i40e/i40e_rxtx.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c > index d3cfb98..554d167 100644 > --- a/drivers/net/i40e/i40e_rxtx.c > +++ b/drivers/net/i40e/i40e_rxtx.c > @@ -1436,10 +1436,10 @@ i40e_recv_scattered_pkts(void *rx_queue, > i40e_rxd_pkt_type_mapping((uint8_t)((qword1 & > I40E_RXD_QW1_PTYPE_MASK) >> I40E_RXD_QW1_PTYPE_SHIFT)); > if (pkt_flags & PKT_RX_RSS_HASH) > - rxm->hash.rss = > + first_seg->hash.rss = > rte_le_to_cpu_32(rxd.wb.qword0.hi_dword.rss); > if (pkt_flags & PKT_RX_FDIR) > - pkt_flags |= i40e_rxd_build_fdir(&rxd, rxm); > + pkt_flags |= i40e_rxd_build_fdir(&rxd, first_seg); > > #ifdef RTE_LIBRTE_IEEE1588 > pkt_flags |= i40e_get_iee15888_flags(first_seg, qword1); > --
Acked-by: Konstantin Ananyev <konstantin.ananyev at intel.com> > 1.9.1