[01/18] net/bonding: fix link speed update in broadcast mode

Message ID 1568103959-25572-2-git-send-email-arybchenko@solarflare.com
State New
Delegated to: Ferruh Yigit
Headers show
Series
  • ethdev: change link status get functions return value to int
Related show

Checks

Context Check Description
ci/Intel-compilation fail Compilation issues
ci/checkpatch success coding style OK

Commit Message

Andrew Rybchenko Sept. 10, 2019, 8:25 a.m.
From: Igor Romanov <igor.romanov@oktetlabs.ru>

Fix the issue that the link speed of the bond device was set to the
link speed of the first active slave in broadcast mode.

Set the link speed of the bond device to the minimum value across
all of the slaves in that case.

Fixes: deba8a2f8b0b ("net/bonding: fix link properties management")
Cc: stable@dpdk.org

Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
 drivers/net/bonding/rte_eth_bond_pmd.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Chas Williams Sept. 10, 2019, 11:01 p.m. | #1
Acked-by: Chas Williams <chas3@att.com>

On 9/10/19 4:25 AM, Andrew Rybchenko wrote:
> From: Igor Romanov <igor.romanov@oktetlabs.ru>
> 
> Fix the issue that the link speed of the bond device was set to the
> link speed of the first active slave in broadcast mode.
> 
> Set the link speed of the bond device to the minimum value across
> all of the slaves in that case.
> 
> Fixes: deba8a2f8b0b ("net/bonding: fix link properties management")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
> ---
>   drivers/net/bonding/rte_eth_bond_pmd.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
> index f774e5677..fed71bd95 100644
> --- a/drivers/net/bonding/rte_eth_bond_pmd.c
> +++ b/drivers/net/bonding/rte_eth_bond_pmd.c
> @@ -2395,8 +2395,8 @@ bond_ethdev_link_update(struct rte_eth_dev *ethdev, int wait_to_complete)
>   		 * packet loss will occur on this slave if transmission at rates
>   		 * greater than this are attempted
>   		 */
> -		for (idx = 1; idx < bond_ctx->active_slave_count; idx++) {
> -			link_update(bond_ctx->active_slaves[0],	&slave_link);
> +		for (idx = 0; idx < bond_ctx->active_slave_count; idx++) {
> +			link_update(bond_ctx->active_slaves[idx], &slave_link);
>   
>   			if (slave_link.link_speed <
>   					ethdev->data->dev_link.link_speed)
>

Patch

diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index f774e5677..fed71bd95 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -2395,8 +2395,8 @@  bond_ethdev_link_update(struct rte_eth_dev *ethdev, int wait_to_complete)
 		 * packet loss will occur on this slave if transmission at rates
 		 * greater than this are attempted
 		 */
-		for (idx = 1; idx < bond_ctx->active_slave_count; idx++) {
-			link_update(bond_ctx->active_slaves[0],	&slave_link);
+		for (idx = 0; idx < bond_ctx->active_slave_count; idx++) {
+			link_update(bond_ctx->active_slaves[idx], &slave_link);
 
 			if (slave_link.link_speed <
 					ethdev->data->dev_link.link_speed)