summaryrefslogtreecommitdiffstats
path: root/net/bridge/br_device.c
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@vyatta.com>2008-06-18 01:10:06 +0200
committerDavid S. Miller <davem@davemloft.net>2008-06-18 01:10:06 +0200
commit92c0574f11598c8036f81e27d2e8bdd6eed7d76d (patch)
tree179c0a8ef7291cc65a692043310b543d35c16eac /net/bridge/br_device.c
parentbridge: handle process all link-local frames (diff)
downloadlinux-92c0574f11598c8036f81e27d2e8bdd6eed7d76d.tar.xz
linux-92c0574f11598c8036f81e27d2e8bdd6eed7d76d.zip
bridge: make bridge address settings sticky
Normally, the bridge just chooses the smallest mac address as the bridge id and mac address of bridge device. But if the administrator has explictly set the interface address then don't change it. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bridge/br_device.c')
-rw-r--r--net/bridge/br_device.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c
index a6ffc6c2a69f..d9449df7cad5 100644
--- a/net/bridge/br_device.c
+++ b/net/bridge/br_device.c
@@ -87,6 +87,7 @@ static int br_set_mac_address(struct net_device *dev, void *p)
spin_lock_bh(&br->lock);
memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN);
br_stp_change_bridge_id(br, addr->sa_data);
+ br->flags |= BR_SET_MAC_ADDR;
spin_unlock_bh(&br->lock);
return 0;