diff mbox

[net-next,2/5] bonding: don't set fail_over_mac if the mode is not active backup

Message ID 52DE4166.9030208@huawei.com
State Changes Requested, archived
Delegated to: David Miller
Headers show

Commit Message

Ding Tianhong Jan. 21, 2014, 9:44 a.m. UTC
The fail_over_mac could be set by sysfs in every mode now, it will
cause bonding not to set all slaves to the same MAC address, but in
rr, xor, broadcast, lacp mode ,the slaves should have the same MAC
address with the master, so don't set the fail_over_mac by sysfs
if the mode is not active-backup.

Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
---
 drivers/net/bonding/bond_options.c | 6 ++++++
 1 file changed, 6 insertions(+)
diff mbox

Patch

diff --git a/drivers/net/bonding/bond_options.c b/drivers/net/bonding/bond_options.c
index 945a666..0996ab4 100644
--- a/drivers/net/bonding/bond_options.c
+++ b/drivers/net/bonding/bond_options.c
@@ -550,6 +550,12 @@  int bond_option_primary_reselect_set(struct bonding *bond, int primary_reselect)
 
 int bond_option_fail_over_mac_set(struct bonding *bond, int fail_over_mac)
 {
+	if (bond->params.mode != BOND_MODE_ACTIVEBACKUP) {
+		pr_err("%s: fail_over_mac only affects active-backup mode\n",
+		       bond->dev->name);
+		return -EINVAL;
+	}
+
 	if (bond_parm_tbl_lookup(fail_over_mac, fail_over_mac_tbl) < 0) {
 		pr_err("%s: Ignoring invalid fail_over_mac value %d.\n",
 		       bond->dev->name, fail_over_mac);