Hi Serra: > -----Original Message----- > From: eduse...@gmail.com [mailto:eduse...@gmail.com] > Sent: Friday, March 30, 2018 4:13 AM > To: Zhang, Qi Z <qi.z.zh...@intel.com> > Cc: dev@dpdk.org; Eduard Serra <eduse...@gmail.com> > Subject: [PATCH] net/i40e/vf: reset scatter_rx flag when configuration > complies > > From: Eduard Serra <eduse...@gmail.com> > > Scatter RX (scattered_rx) flag is currently not being resetted when new > configuration is suplied to reconfigure a port, rendering the rx callback > logic to
s/suplied/supplied > always fall through the scatter branch. > > Signed-off-by: Eduard Serra <eduse...@gmail.com> > --- > drivers/net/i40e/i40e_ethdev_vf.c | 2 ++ > drivers/net/i40e/i40e_rxtx.c | 2 ++ > 2 files changed, 4 insertions(+) > > diff --git a/drivers/net/i40e/i40e_ethdev_vf.c > b/drivers/net/i40e/i40e_ethdev_vf.c > index 750d849..a072154 100644 > --- a/drivers/net/i40e/i40e_ethdev_vf.c > +++ b/drivers/net/i40e/i40e_ethdev_vf.c > @@ -1750,6 +1750,8 @@ i40evf_rxq_init(struct rte_eth_dev *dev, struct > i40e_rx_queue *rxq) > if (dev_data->dev_conf.rxmode.enable_scatter || > (rxq->max_pkt_len + 2 * I40E_VLAN_TAG_SIZE) > buf_size) { > dev_data->scattered_rx = 1; > + } else { > + dev_data->scattered_rx = 0; Scattered_rx should not be reset if any queue already required You should reset it before the queue loop > } > > return 0; > diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c index > 1217e5a..8698747 100644 > --- a/drivers/net/i40e/i40e_rxtx.c > +++ b/drivers/net/i40e/i40e_rxtx.c > @@ -2561,6 +2561,8 @@ i40e_rx_queue_init(struct i40e_rx_queue *rxq) > /* Check if scattered RX needs to be used. */ > if ((rxq->max_pkt_len + 2 * I40E_VLAN_TAG_SIZE) > buf_size) { > dev_data->scattered_rx = 1; > + } else { > + dev_data->scattered_rx = 0; Same as above. Regards Qi > } > > /* Init the RX tail regieter. */ > -- > 2.7.4