diff mbox series

[4.4] bonding: Break instead of returning in alb_send_learning_packets

Message ID 20240323124301.250422-1-theflamefire89@gmail.com (mailing list archive)
State New
Headers show
Series [4.4] bonding: Break instead of returning in alb_send_learning_packets | expand

Commit Message

Alexander Grund March 23, 2024, 12:43 p.m. UTC
From: Alexander Grund <flamefire89@gmail.com>

The upstream commit used a function which upon returning an error value
would break out of the surrounding loop.
In 4.4.x the loop is inside the function alb_send_learning_packets
hence returning would be wrong as it will skip the rcu_read_unlock.
Moreover returning a value from a void function doesn't even compile.

Fixes d6b83f1e (bonding: return -ENOMEM instead of BUG in alb_upper_dev_walk)

Signed-off-by: Alexander Grund <flamefire89@gmail.com>
---
 drivers/net/bonding/bond_alb.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Ulrich Hecht April 4, 2024, 12:46 p.m. UTC | #1
> On 03/23/2024 1:43 PM CET Alexander Grund <theflamefire89@gmail.com> wrote:
> 
>  
> From: Alexander Grund <flamefire89@gmail.com>
> 
> The upstream commit used a function which upon returning an error value
> would break out of the surrounding loop.
> In 4.4.x the loop is inside the function alb_send_learning_packets
> hence returning would be wrong as it will skip the rcu_read_unlock.
> Moreover returning a value from a void function doesn't even compile.
> 
> Fixes d6b83f1e (bonding: return -ENOMEM instead of BUG in alb_upper_dev_walk)
> 
> Signed-off-by: Alexander Grund <flamefire89@gmail.com>

Thanks, applied.

CU
Uli
diff mbox series

Patch

diff --git a/drivers/net/bonding/bond_alb.c b/drivers/net/bonding/bond_alb.c
index 5321de9d80f7e..25943d6b04e12 100644
--- a/drivers/net/bonding/bond_alb.c
+++ b/drivers/net/bonding/bond_alb.c
@@ -986,7 +986,7 @@  static void alb_send_learning_packets(struct slave *slave, u8 mac_addr[],
 		if (netif_is_macvlan(upper) && !strict_match) {
 			tags = bond_verify_device_path(bond->dev, upper, 0);
 			if (IS_ERR_OR_NULL(tags))
-				return -ENOMEM;
+				break;
 
 			alb_send_lp_vid(slave, upper->dev_addr,
 					tags[0].vlan_proto, tags[0].vlan_id);