net/bonding: fix deadloop when update RSS RETA
Checks
Commit Message
From: Zhiguang He <191390813@qq.com>
when parament 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 <1913909813@qq.com>
---
drivers/net/bonding/rte_eth_bond_pmd.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Comments
Hi, Zhiguang He
On 2020/8/2 20:27, 1913909813@qq.com wrote:
> From: Zhiguang He <191390813@qq.com>
>
> when parament 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 <1913909813@qq.com>
Acked-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
Thank you for fixing this issue.
Xavier
> ---
> drivers/net/bonding/rte_eth_bond_pmd.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
> index 116e2f2..cdbd815 100644
> --- a/drivers/net/bonding/rte_eth_bond_pmd.c
> +++ b/drivers/net/bonding/rte_eth_bond_pmd.c
> @@ -2935,7 +2935,8 @@ struct bwg_slave {
> 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;
03/08/2020 04:23, Wei Hu (Xavier):
> Hi, Zhiguang He
>
> On 2020/8/2 20:27, 1913909813@qq.com wrote:
> > From: Zhiguang He <191390813@qq.com>
> >
> > when parament 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 <1913909813@qq.com>
This email is different of the one in From line:
1913909813@qq.com
191390813@qq.com
I will assume your correct email is a third one, Cc'ed:
hezhiguang3@huawei.com
> Acked-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
>
> Thank you for fixing this issue.
Applied with Huawei identity.
@@ -2935,7 +2935,8 @@ struct bwg_slave {
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;