diff --git a/drivers/net/bonding/bond_options.c b/drivers/net/bonding/bond_options.c index 05a402c99bff5e4071ef554ecfc1e34f9c44f6ef..4cee04aa6eb3f497bf2c66e04ecd00dc69a9ff19 100644 --- a/drivers/net/bonding/bond_options.c +++ b/drivers/net/bonding/bond_options.c @@ -1021,6 +1021,12 @@ int bond_option_primary_set(struct bonding *bond, struct bond_opt_value *newval) } } + if (bond->primary_slave) { + pr_info("%s: Setting primary slave to None.\n", + bond->dev->name); + bond->primary_slave = NULL; + bond_select_active_slave(bond); + } strncpy(bond->params.primary, primary, IFNAMSIZ); bond->params.primary[IFNAMSIZ - 1] = 0;