summaryrefslogtreecommitdiffstats
path: root/drivers/net/bonding/bond_main.c
diff options
context:
space:
mode:
authordingtianhong2014-01-25 06:00:57 +0100
committerDavid S. Miller2014-02-05 04:47:27 +0100
commitcc689aaa7abf33b2ccb02482e5e17885ea8903d1 (patch)
tree57e07faeb8def276e9cb83446758ed1043d093d4 /drivers/net/bonding/bond_main.c
parentbonding: fail_over_mac should only affect AB mode at enslave and removal proc... (diff)
downloadkernel-qcow2-linux-cc689aaa7abf33b2ccb02482e5e17885ea8903d1.tar.gz
kernel-qcow2-linux-cc689aaa7abf33b2ccb02482e5e17885ea8903d1.tar.xz
kernel-qcow2-linux-cc689aaa7abf33b2ccb02482e5e17885ea8903d1.zip
bonding: fail_over_mac should only affect AB mode in bond_set_mac_address()
The fail_over_mac could be set to active or follow in any time for all modes, so if the fail_over_mac is not none and the current mode is not active-backup, the bond_set_mac_address() could not change the master and slave's MAC address. In bond_set_mac_address(), the fail_over_mac should only affect AB mode, so modify to check the mode in addition to fail_over_mac when setting bond's MAC address. Cc: Jay Vosburgh <fubar@us.ibm.com> Cc: Veaceslav Falico <vfalico@redhat.com> Cc: Andy Gospodarek <andy@greyhouse.net> Signed-off-by: Ding Tianhong <dingtianhong@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/bonding/bond_main.c')
-rw-r--r--drivers/net/bonding/bond_main.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 8e6dd13b3607..35f7e90aef72 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -3439,7 +3439,8 @@ static int bond_set_mac_address(struct net_device *bond_dev, void *addr)
/* If fail_over_mac is enabled, do nothing and return success.
* Returning an error causes ifenslave to fail.
*/
- if (bond->params.fail_over_mac)
+ if (bond->params.fail_over_mac &&
+ bond->params.mode == BOND_MODE_ACTIVEBACKUP)
return 0;
if (!is_valid_ether_addr(sa->sa_data))