dpdk/backport-fix-dead-loop-on-RSS-RETA-update.patch
compile_success a0ebfb4579 backport bond patch
(cherry picked from commit 471caaceb108db9e1f914306c619c6eed3c5a87e)
2023-11-10 09:07:16 +08:00

38 lines
1.2 KiB
Diff

From eb8939538fddced05b906c34ba9f545bf6717ad2 Mon Sep 17 00:00:00 2001
From: Zhiguang He <hezhiguang3@huawei.com>
Date: Sun, 2 Aug 2020 20:27:27 +0800
Subject: net/bonding: fix dead loop on RSS RETA update
When parameter reta_size < RTE_RETA_GROUP_SIZE, reta_count will be 0.
Then this function will be deadloop.
Fixes: 734ce47f71e0 ("bonding: support RSS dynamic configuration")
Cc: stable@dpdk.org
Signed-off-by: Zhiguang He <hezhiguang3@huawei.com>
Acked-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
---
drivers/net/bonding/rte_eth_bond_pmd.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
(limited to 'drivers/net/bonding')
diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index 116e2f29de..cdbd8151ed 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -2935,7 +2935,8 @@ bond_ethdev_rss_reta_update(struct rte_eth_dev *dev,
return -EINVAL;
/* Copy RETA table */
- reta_count = reta_size / RTE_RETA_GROUP_SIZE;
+ reta_count = (reta_size + RTE_RETA_GROUP_SIZE - 1) /
+ RTE_RETA_GROUP_SIZE;
for (i = 0; i < reta_count; i++) {
internals->reta_conf[i].mask = reta_conf[i].mask;
--
cgit v1.2.1