Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 47d31b97 authored by Jay Vosburgh's avatar Jay Vosburgh Committed by Greg Kroah-Hartman
Browse files

bonding: ARP monitor spams NETDEV_NOTIFY_PEERS notifiers



[ Upstream commit 7a9214f3d88cfdb099f3896e102a306b316d8707 ]

The bonding ARP monitor fails to decrement send_peer_notif, the
number of peer notifications (gratuitous ARP or ND) to be sent. This
results in a continuous series of notifications.

Correct this by decrementing the counter for each notification.

Reported-by: default avatarJonathan Toppins <jtoppins@redhat.com>
Signed-off-by: default avatarJay Vosburgh <jay.vosburgh@canonical.com>
Fixes: b0929915 ("bonding: Fix RTNL: assertion failed at net/core/rtnetlink.c for ab arp monitor")
Link: https://lore.kernel.org/netdev/b2fd4147-8f50-bebd-963a-1a3e8d1d9715@redhat.com/


Tested-by: default avatarJonathan Toppins <jtoppins@redhat.com>
Reviewed-by: default avatarJonathan Toppins <jtoppins@redhat.com>
Link: https://lore.kernel.org/r/9400.1655407960@famine


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 104a59b7
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -3071,9 +3071,11 @@ static void bond_activebackup_arp_mon(struct bonding *bond)
		if (!rtnl_trylock())
			return;

		if (should_notify_peers)
		if (should_notify_peers) {
			bond->send_peer_notif--;
			call_netdevice_notifiers(NETDEV_NOTIFY_PEERS,
						 bond->dev);
		}
		if (should_notify_rtnl) {
			bond_slave_state_notify(bond);
			bond_slave_link_notify(bond);