[RFC net-next] bonding: Retry updating slave MAC after a failure

From: Paritosh Potukuchi

Date: Tue Jun 30 2026 - 11:14:18 EST



Hi all,

I came across this TODO in bond_set_mac_address() :

/* TODO: consider downing the slave
* and retry ?
* User should expect communications
* breakage anyway until ARP finish
* updating, so...
*/

Currently, if the dev_set_mac_address() fails on a slave, we go
ahead and unwind the bond and its slaves.

As the TODO suggests, one possible solution is to try setting
the MAC again, after putting down the interface. This is because some
drivers may reject changing the MAC when the device is UP.

The solution I am proposing is as follows:

dev_set_mac_address on the slave
- If this fails, temporarily stop the slave - ndo_stop
- If stop fails, unwind
- call dev_set_mac_address() on the slave
- If this fails, unwind
- Bring up the slave by calling ndo_open
- If this fails, unwind
If dev_set_mac_address on slave passes, we go to the next slave


Before working on a patch, I wanted to get feedback on whether
this interpretation of the TODO makes sense and whether there
are concerns with temporarily stopping and restarting a slave
during bond_set_mac_address().

Thanks,
Paritosh