From: Beilei Xing <beilei.x...@intel.com>

Currently, if launch testpmd with multiple queues and re-configure
rxq with 'port config all rxq 1', Rx queue 0 may not receive packets.
that's because RSS lookup tale is not re-configured when Rxq number
is 1.
Although Rxq number is 1 and multi queue mode is RTE_ETH_MQ_RX_NONE,
cpfl PMD should init RSS to allow RSS re-configuration.

Fixes: cfbc66551a14 ("net/cpfl: support RSS")

Signed-off-by: Beilei Xing <beilei.x...@intel.com>
---
 drivers/net/cpfl/cpfl_ethdev.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/net/cpfl/cpfl_ethdev.c b/drivers/net/cpfl/cpfl_ethdev.c
index e96bf0a82e..9755ffe508 100644
--- a/drivers/net/cpfl/cpfl_ethdev.c
+++ b/drivers/net/cpfl/cpfl_ethdev.c
@@ -712,17 +712,15 @@ cpfl_dev_configure(struct rte_eth_dev *dev)
                return -EINVAL;
        }
 
-       if (base->caps.rss_caps != 0 && dev->data->nb_rx_queues != 0 &&
-               conf->rxmode.mq_mode == RTE_ETH_MQ_RX_RSS) {
+       if (base->caps.rss_caps != 0 && dev->data->nb_rx_queues != 0) {
                ret = cpfl_init_rss(vport);
                if (ret != 0) {
                        PMD_INIT_LOG(ERR, "Failed to init rss");
                        return ret;
                }
-       } else {
+       } else if (conf->rxmode.mq_mode == RTE_ETH_MQ_RX_RSS) {
                PMD_INIT_LOG(ERR, "RSS is not supported.");
-               if (conf->rxmode.mq_mode == RTE_ETH_MQ_RX_RSS)
-                       return -ENOTSUP;
+               return -ENOTSUP;
        }
 
        vport->max_pkt_len =
-- 
2.34.1

Reply via email to