On 04/07, Junyu Jiang wrote: >This patch moved the RSS initialization from dev start to dev configure >to fix RSS advanced rule invalid after running port stop and port start. > >Fixes: 5ad3db8d4bdd ("net/ice: enable advanced RSS") >Cc: sta...@dpdk.org > >Signed-off-by: Junyu Jiang <junyux.ji...@intel.com> >--- > drivers/net/ice/ice_ethdev.c | 50 +++++++++++++++++++----------------- > 1 file changed, 26 insertions(+), 24 deletions(-) > >diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c >index 85ef83e92..90a91c9c1 100644 >--- a/drivers/net/ice/ice_ethdev.c >+++ b/drivers/net/ice/ice_ethdev.c >@@ -2446,24 +2446,6 @@ ice_dev_uninit(struct rte_eth_dev *dev) > return 0; > } > >-static int >-ice_dev_configure(struct rte_eth_dev *dev) >-{ >- struct ice_adapter *ad = >- ICE_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private); >- >- /* Initialize to TRUE. If any of Rx queues doesn't meet the >- * bulk allocation or vector Rx preconditions we will reset it. >- */ >- ad->rx_bulk_alloc_allowed = true; >- ad->tx_simple_allowed = true; >- >- if (dev->data->dev_conf.rxmode.mq_mode & ETH_MQ_RX_RSS_FLAG) >- dev->data->dev_conf.rxmode.offloads |= DEV_RX_OFFLOAD_RSS_HASH; >- >- return 0; >-} >- > static int ice_init_rss(struct ice_pf *pf) > { > struct ice_hw *hw = ICE_PF_TO_HW(pf); >@@ -2594,6 +2576,32 @@ static int ice_init_rss(struct ice_pf *pf) > return 0; > } > >+static int >+ice_dev_configure(struct rte_eth_dev *dev) >+{ >+ struct ice_adapter *ad = >+ ICE_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private); >+ struct ice_pf *pf = ICE_DEV_PRIVATE_TO_PF(dev->data->dev_private); >+ int ret; >+ >+ /* Initialize to TRUE. If any of Rx queues doesn't meet the >+ * bulk allocation or vector Rx preconditions we will reset it. >+ */ >+ ad->rx_bulk_alloc_allowed = true; >+ ad->tx_simple_allowed = true; >+ >+ if (dev->data->dev_conf.rxmode.mq_mode & ETH_MQ_RX_RSS_FLAG) >+ dev->data->dev_conf.rxmode.offloads |= DEV_RX_OFFLOAD_RSS_HASH; >+ >+ ret = ice_init_rss(pf); >+ if (ret) { >+ PMD_DRV_LOG(ERR, "Failed to enable rss for PF"); >+ return ret; >+ } >+ >+ return 0; >+} >+ > static void > __vsi_queues_bind_intr(struct ice_vsi *vsi, uint16_t msix_vect, > int base_queue, int nb_queue) >@@ -2797,12 +2805,6 @@ ice_dev_start(struct rte_eth_dev *dev) > } > } > >- ret = ice_init_rss(pf); >- if (ret) { >- PMD_DRV_LOG(ERR, "Failed to enable rss for PF"); >- goto rx_err; >- } >- > ice_set_rx_function(dev); > ice_set_tx_function(dev); > >-- >2.17.1 >
Applied to dpdk-next-net-intel, Thanks.