diff mbox

[v2,net,6/6] bonding: disallow change of MAC if fail_over_mac enabled

Message ID 1370037451-29466-7-git-send-email-fubar@us.ibm.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Jay Vosburgh May 31, 2013, 9:57 p.m. UTC
Currently, if fail_over_mac is set to active, then attempts to
change the MAC of the bond itself silently fail.  However, if fail_over_mac
is set to follow, changes are permitted.

	Permitting the bond's MAC to change with fail_over_mac=follow
will disrupt the follow functionality, which normally controls the
assignment of MAC address to the bond and its slaves, and can cause
multiple ports to be assigned the same MAC address. which will interfere
with the functioning of the device (where the device here is a
virtualization-aware card for s390, qeth).

Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
---
 drivers/net/bonding/bond_main.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

Comments

David Miller June 7, 2013, 10:06 p.m. UTC | #1
From: Jay Vosburgh <fubar@us.ibm.com>
Date: Fri, 31 May 2013 14:57:31 -0700

> 	Currently, if fail_over_mac is set to active, then attempts to
> change the MAC of the bond itself silently fail.  However, if fail_over_mac
> is set to follow, changes are permitted.
> 
> 	Permitting the bond's MAC to change with fail_over_mac=follow
> will disrupt the follow functionality, which normally controls the
> assignment of MAC address to the bond and its slaves, and can cause
> multiple ports to be assigned the same MAC address. which will interfere
> with the functioning of the device (where the device here is a
> virtualization-aware card for s390, qeth).
> 
> Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>

Applied to net-next.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 4953f66..bc1246f 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -3780,11 +3780,10 @@  static int bond_set_mac_address(struct net_device *bond_dev, void *addr)
 	pr_debug("bond=%p, name=%s\n",
 		 bond, bond_dev ? bond_dev->name : "None");
 
-	/*
-	 * If fail_over_mac is set to active, do nothing and return
-	 * success.  Returning an error causes ifenslave to fail.
+	/* If fail_over_mac is enabled, do nothing and return success.
+	 * Returning an error causes ifenslave to fail.
 	 */
-	if (bond->params.fail_over_mac == BOND_FOM_ACTIVE)
+	if (bond->params.fail_over_mac)
 		return 0;
 
 	if (!is_valid_ether_addr(sa->sa_data))