net/cnxk: update RSS RETA table
Checks
Commit Message
rss reta table is corrupted during
rte_eth_dev_rss_reta_update.This fix restores
previous table entries before updating.
Fixes: 00242a687de ("net/cnxk: support RETA and RSS hash")
Cc: stable@dpdk.org
Signed-off-by: Rakesh Kudurumalla <rkudurumalla@marvell.com>
---
drivers/net/cnxk/cnxk_ethdev_ops.c | 2 ++
1 file changed, 2 insertions(+)
Comments
On Thu, Feb 24, 2022 at 2:05 PM Rakesh Kudurumalla
<rkudurumalla@marvell.com> wrote:
>
> rss reta table is corrupted during
> rte_eth_dev_rss_reta_update.This fix restores
> previous table entries before updating.
>
> Fixes: 00242a687de ("net/cnxk: support RETA and RSS hash")
> Cc: stable@dpdk.org
>
> Signed-off-by: Rakesh Kudurumalla <rkudurumalla@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
Updated the git commit as follows and applied to
dpdk-next-net-eventdev/for-main. Thanks
net/cnxk: fix RSS RETA table update
RSS reta table is corrupted during rte_eth_dev_rss_reta_update().
Fix it by restoring previous table entries before updating.
Fixes: 00242a687de ("net/cnxk: support RETA and RSS hash")
Cc: stable@dpdk.org
Signed-off-by: Rakesh Kudurumalla <rkudurumalla@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
> ---
> drivers/net/cnxk/cnxk_ethdev_ops.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/net/cnxk/cnxk_ethdev_ops.c b/drivers/net/cnxk/cnxk_ethdev_ops.c
> index b0a16f3c56..f4a0562475 100644
> --- a/drivers/net/cnxk/cnxk_ethdev_ops.c
> +++ b/drivers/net/cnxk/cnxk_ethdev_ops.c
> @@ -857,6 +857,8 @@ cnxk_nix_reta_update(struct rte_eth_dev *eth_dev,
> goto fail;
> }
>
> + roc_nix_rss_reta_get(nix, 0, reta);
> +
> /* Copy RETA table */
> for (i = 0; i < (int)(dev->nix.reta_sz / RTE_ETH_RETA_GROUP_SIZE); i++) {
> for (j = 0; j < RTE_ETH_RETA_GROUP_SIZE; j++) {
> --
> 2.25.1
>
@@ -857,6 +857,8 @@ cnxk_nix_reta_update(struct rte_eth_dev *eth_dev,
goto fail;
}
+ roc_nix_rss_reta_get(nix, 0, reta);
+
/* Copy RETA table */
for (i = 0; i < (int)(dev->nix.reta_sz / RTE_ETH_RETA_GROUP_SIZE); i++) {
for (j = 0; j < RTE_ETH_RETA_GROUP_SIZE; j++) {