netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net v2] net: bonding: update the slave array for broadcast mode
@ 2025-10-16 12:51 Tonghao Zhang
  2025-10-16 12:54 ` Nikolay Aleksandrov
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Tonghao Zhang @ 2025-10-16 12:51 UTC (permalink / raw)
  To: netdev
  Cc: Tonghao Zhang, Jay Vosburgh, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Simon Horman, Jonathan Corbet,
	Andrew Lunn, Nikolay Aleksandrov, Hangbin Liu, Jiri Slaby, stable

This patch fixes ce7a381697cb ("net: bonding: add broadcast_neighbor option for 802.3ad").
Before this commit, on the broadcast mode, all devices were traversed using the
bond_for_each_slave_rcu. This patch supports traversing devices by using all_slaves.
Therefore, we need to update the slave array when enslave or release slave.

Fixes: ce7a381697cb ("net: bonding: add broadcast_neighbor option for 802.3ad")
Cc: Jay Vosburgh <jv@jvosburgh.net>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Simon Horman <horms@kernel.org>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>
Cc: Nikolay Aleksandrov <razor@blackwall.org>
Cc: Hangbin Liu <liuhangbin@gmail.com>
Cc: Jiri Slaby <jirislaby@kernel.org>
Cc: <stable@vger.kernel.org>
Reported-by: Jiri Slaby <jirislaby@kernel.org>
Tested-by: Jiri Slaby <jirislaby@kernel.org>
Link: https://lore.kernel.org/all/a97e6e1e-81bc-4a79-8352-9e4794b0d2ca@kernel.org/
Signed-off-by: Tonghao Zhang <tonghao@bamaicloud.com>
Reviewed-by: Hangbin Liu <liuhangbin@gmail.com>
---
v2:
- fix the typo in the comments, salve -> slave
- add the target repo in the subject
---
 drivers/net/bonding/bond_main.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 17c7542be6a5..2d6883296e32 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -2384,7 +2384,9 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
 		unblock_netpoll_tx();
 	}
 
-	if (bond_mode_can_use_xmit_hash(bond))
+	/* broadcast mode uses the all_slaves to loop through slaves. */
+	if (bond_mode_can_use_xmit_hash(bond) ||
+	    BOND_MODE(bond) == BOND_MODE_BROADCAST)
 		bond_update_slave_arr(bond, NULL);
 
 	if (!slave_dev->netdev_ops->ndo_bpf ||
@@ -2560,7 +2562,8 @@ static int __bond_release_one(struct net_device *bond_dev,
 
 	bond_upper_dev_unlink(bond, slave);
 
-	if (bond_mode_can_use_xmit_hash(bond))
+	if (bond_mode_can_use_xmit_hash(bond) ||
+	    BOND_MODE(bond) == BOND_MODE_BROADCAST)
 		bond_update_slave_arr(bond, slave);
 
 	slave_info(bond_dev, slave_dev, "Releasing %s interface\n",
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH net v2] net: bonding: update the slave array for broadcast mode
  2025-10-16 12:51 [PATCH net v2] net: bonding: update the slave array for broadcast mode Tonghao Zhang
@ 2025-10-16 12:54 ` Nikolay Aleksandrov
  2025-10-17 17:14 ` Jay Vosburgh
  2025-10-18  0:00 ` patchwork-bot+netdevbpf
  2 siblings, 0 replies; 4+ messages in thread
From: Nikolay Aleksandrov @ 2025-10-16 12:54 UTC (permalink / raw)
  To: Tonghao Zhang, netdev
  Cc: Jay Vosburgh, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Simon Horman, Jonathan Corbet, Andrew Lunn,
	Hangbin Liu, Jiri Slaby, stable

On 10/16/25 15:51, Tonghao Zhang wrote:
> This patch fixes ce7a381697cb ("net: bonding: add broadcast_neighbor option for 802.3ad").
> Before this commit, on the broadcast mode, all devices were traversed using the
> bond_for_each_slave_rcu. This patch supports traversing devices by using all_slaves.
> Therefore, we need to update the slave array when enslave or release slave.
> 
> Fixes: ce7a381697cb ("net: bonding: add broadcast_neighbor option for 802.3ad")
> Cc: Jay Vosburgh <jv@jvosburgh.net>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: Eric Dumazet <edumazet@google.com>
> Cc: Jakub Kicinski <kuba@kernel.org>
> Cc: Paolo Abeni <pabeni@redhat.com>
> Cc: Simon Horman <horms@kernel.org>
> Cc: Jonathan Corbet <corbet@lwn.net>
> Cc: Andrew Lunn <andrew+netdev@lunn.ch>
> Cc: Nikolay Aleksandrov <razor@blackwall.org>
> Cc: Hangbin Liu <liuhangbin@gmail.com>
> Cc: Jiri Slaby <jirislaby@kernel.org>
> Cc: <stable@vger.kernel.org>
> Reported-by: Jiri Slaby <jirislaby@kernel.org>
> Tested-by: Jiri Slaby <jirislaby@kernel.org>
> Link: https://lore.kernel.org/all/a97e6e1e-81bc-4a79-8352-9e4794b0d2ca@kernel.org/
> Signed-off-by: Tonghao Zhang <tonghao@bamaicloud.com>
> Reviewed-by: Hangbin Liu <liuhangbin@gmail.com>
> ---
> v2:
> - fix the typo in the comments, salve -> slave
> - add the target repo in the subject
> ---
>  drivers/net/bonding/bond_main.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
> index 17c7542be6a5..2d6883296e32 100644
> --- a/drivers/net/bonding/bond_main.c
> +++ b/drivers/net/bonding/bond_main.c
> @@ -2384,7 +2384,9 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
>  		unblock_netpoll_tx();
>  	}
>  
> -	if (bond_mode_can_use_xmit_hash(bond))
> +	/* broadcast mode uses the all_slaves to loop through slaves. */
> +	if (bond_mode_can_use_xmit_hash(bond) ||
> +	    BOND_MODE(bond) == BOND_MODE_BROADCAST)
>  		bond_update_slave_arr(bond, NULL);
>  
>  	if (!slave_dev->netdev_ops->ndo_bpf ||
> @@ -2560,7 +2562,8 @@ static int __bond_release_one(struct net_device *bond_dev,
>  
>  	bond_upper_dev_unlink(bond, slave);
>  
> -	if (bond_mode_can_use_xmit_hash(bond))
> +	if (bond_mode_can_use_xmit_hash(bond) ||
> +	    BOND_MODE(bond) == BOND_MODE_BROADCAST)
>  		bond_update_slave_arr(bond, slave);
>  
>  	slave_info(bond_dev, slave_dev, "Releasing %s interface\n",

Reviewed-by: Nikolay Aleksandrov <razor@blackwall.org>


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH net v2] net: bonding: update the slave array for broadcast mode
  2025-10-16 12:51 [PATCH net v2] net: bonding: update the slave array for broadcast mode Tonghao Zhang
  2025-10-16 12:54 ` Nikolay Aleksandrov
@ 2025-10-17 17:14 ` Jay Vosburgh
  2025-10-18  0:00 ` patchwork-bot+netdevbpf
  2 siblings, 0 replies; 4+ messages in thread
From: Jay Vosburgh @ 2025-10-17 17:14 UTC (permalink / raw)
  To: Tonghao Zhang
  Cc: netdev, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Simon Horman, Jonathan Corbet, Andrew Lunn,
	Nikolay Aleksandrov, Hangbin Liu, Jiri Slaby, stable

Tonghao Zhang <tonghao@bamaicloud.com> wrote:

>This patch fixes ce7a381697cb ("net: bonding: add broadcast_neighbor option for 802.3ad").
>Before this commit, on the broadcast mode, all devices were traversed using the
>bond_for_each_slave_rcu. This patch supports traversing devices by using all_slaves.
>Therefore, we need to update the slave array when enslave or release slave.
>
>Fixes: ce7a381697cb ("net: bonding: add broadcast_neighbor option for 802.3ad")
>Cc: Jay Vosburgh <jv@jvosburgh.net>
>Cc: "David S. Miller" <davem@davemloft.net>
>Cc: Eric Dumazet <edumazet@google.com>
>Cc: Jakub Kicinski <kuba@kernel.org>
>Cc: Paolo Abeni <pabeni@redhat.com>
>Cc: Simon Horman <horms@kernel.org>
>Cc: Jonathan Corbet <corbet@lwn.net>
>Cc: Andrew Lunn <andrew+netdev@lunn.ch>
>Cc: Nikolay Aleksandrov <razor@blackwall.org>
>Cc: Hangbin Liu <liuhangbin@gmail.com>
>Cc: Jiri Slaby <jirislaby@kernel.org>
>Cc: <stable@vger.kernel.org>
>Reported-by: Jiri Slaby <jirislaby@kernel.org>
>Tested-by: Jiri Slaby <jirislaby@kernel.org>
>Link: https://lore.kernel.org/all/a97e6e1e-81bc-4a79-8352-9e4794b0d2ca@kernel.org/
>Signed-off-by: Tonghao Zhang <tonghao@bamaicloud.com>
>Reviewed-by: Hangbin Liu <liuhangbin@gmail.com>

Acked-by: Jay Vosburgh <jv@jvosburgh.net>

>---
>v2:
>- fix the typo in the comments, salve -> slave
>- add the target repo in the subject
>---
> drivers/net/bonding/bond_main.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
>diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
>index 17c7542be6a5..2d6883296e32 100644
>--- a/drivers/net/bonding/bond_main.c
>+++ b/drivers/net/bonding/bond_main.c
>@@ -2384,7 +2384,9 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
> 		unblock_netpoll_tx();
> 	}
> 
>-	if (bond_mode_can_use_xmit_hash(bond))
>+	/* broadcast mode uses the all_slaves to loop through slaves. */
>+	if (bond_mode_can_use_xmit_hash(bond) ||
>+	    BOND_MODE(bond) == BOND_MODE_BROADCAST)
> 		bond_update_slave_arr(bond, NULL);
> 
> 	if (!slave_dev->netdev_ops->ndo_bpf ||
>@@ -2560,7 +2562,8 @@ static int __bond_release_one(struct net_device *bond_dev,
> 
> 	bond_upper_dev_unlink(bond, slave);
> 
>-	if (bond_mode_can_use_xmit_hash(bond))
>+	if (bond_mode_can_use_xmit_hash(bond) ||
>+	    BOND_MODE(bond) == BOND_MODE_BROADCAST)
> 		bond_update_slave_arr(bond, slave);
> 
> 	slave_info(bond_dev, slave_dev, "Releasing %s interface\n",
>-- 
>2.34.1
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH net v2] net: bonding: update the slave array for broadcast mode
  2025-10-16 12:51 [PATCH net v2] net: bonding: update the slave array for broadcast mode Tonghao Zhang
  2025-10-16 12:54 ` Nikolay Aleksandrov
  2025-10-17 17:14 ` Jay Vosburgh
@ 2025-10-18  0:00 ` patchwork-bot+netdevbpf
  2 siblings, 0 replies; 4+ messages in thread
From: patchwork-bot+netdevbpf @ 2025-10-18  0:00 UTC (permalink / raw)
  To: Tonghao Zhang
  Cc: netdev, jv, davem, edumazet, kuba, pabeni, horms, corbet,
	andrew+netdev, razor, liuhangbin, jirislaby, stable

Hello:

This patch was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Thu, 16 Oct 2025 20:51:36 +0800 you wrote:
> This patch fixes ce7a381697cb ("net: bonding: add broadcast_neighbor option for 802.3ad").
> Before this commit, on the broadcast mode, all devices were traversed using the
> bond_for_each_slave_rcu. This patch supports traversing devices by using all_slaves.
> Therefore, we need to update the slave array when enslave or release slave.
> 
> Fixes: ce7a381697cb ("net: bonding: add broadcast_neighbor option for 802.3ad")
> Cc: Jay Vosburgh <jv@jvosburgh.net>
> Cc: "David S. Miller" <davem@davemloft.net>
> Cc: Eric Dumazet <edumazet@google.com>
> Cc: Jakub Kicinski <kuba@kernel.org>
> Cc: Paolo Abeni <pabeni@redhat.com>
> Cc: Simon Horman <horms@kernel.org>
> Cc: Jonathan Corbet <corbet@lwn.net>
> Cc: Andrew Lunn <andrew+netdev@lunn.ch>
> Cc: Nikolay Aleksandrov <razor@blackwall.org>
> Cc: Hangbin Liu <liuhangbin@gmail.com>
> Cc: Jiri Slaby <jirislaby@kernel.org>
> Cc: <stable@vger.kernel.org>
> Reported-by: Jiri Slaby <jirislaby@kernel.org>
> Tested-by: Jiri Slaby <jirislaby@kernel.org>
> Link: https://lore.kernel.org/all/a97e6e1e-81bc-4a79-8352-9e4794b0d2ca@kernel.org/
> Signed-off-by: Tonghao Zhang <tonghao@bamaicloud.com>
> Reviewed-by: Hangbin Liu <liuhangbin@gmail.com>
> 
> [...]

Here is the summary with links:
  - [net,v2] net: bonding: update the slave array for broadcast mode
    https://git.kernel.org/netdev/net/c/e0caeb24f538

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-10-18  0:00 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-16 12:51 [PATCH net v2] net: bonding: update the slave array for broadcast mode Tonghao Zhang
2025-10-16 12:54 ` Nikolay Aleksandrov
2025-10-17 17:14 ` Jay Vosburgh
2025-10-18  0:00 ` patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).