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 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;
        }
 
        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;
        }
 
        /* Init the RX tail regieter. */
-- 
2.7.4

Reply via email to