38 lines
1.2 KiB
Diff
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
|
|
|
|
|