On Thu, Dec 12, 2024 at 11:43:15AM +0200, Nikolay Aleksandrov wrote:
--- a/drivers/net/bonding/bond_netlink.c +++ b/drivers/net/bonding/bond_netlink.c @@ -568,18 +568,21 @@ static int bond_newlink(struct net *src_net, struct net_device *bond_dev, struct nlattr *tb[], struct nlattr *data[], struct netlink_ext_ack *extack) {
- struct bonding *bond = netdev_priv(bond_dev); int err;
- err = bond_changelink(bond_dev, tb, data, extack);
- if (err < 0)
- err = register_netdevice(bond_dev);
- if (err) return err;
- err = register_netdevice(bond_dev);
- if (!err) {
struct bonding *bond = netdev_priv(bond_dev);
- netif_carrier_off(bond_dev);
- bond_work_init_all(bond);
netif_carrier_off(bond_dev);
bond_work_init_all(bond);
- err = bond_changelink(bond_dev, tb, data, extack);
- if (err) {
bond_work_cancel_all(bond);
netif_carrier_on(bond_dev);
The patch looks good, but I'm curious why the carrier on here?
The current code set netif_carrier_off(bond_dev) after register_netdevice() success, So I make it on if register failed.
Thanks hangbin
I don't like adding code just for symmetry alone, I think you should drop it unless there is an actual reason to turn carrier on.
OK, I will drop it.
Thanks Hangbin