Philip, sorry for the duplicate email. Forgot to CC the list the first time. Perhaps the needed patch is the following, which allows setting the bridge hardware address to anything rather than just one of the port interface addresses. Seems to have got in after Linux 2.6.21, so should be in 2.6.22. [~/git/linux-2.6] git-describe ffe1d49cc300f3dff990093aa952a2fbb371c1b6 v2.6.21-324-gffe1d49 [~/git/linux-2.6] git-diff-tree -p --pretty=fuller ffe1d49cc300f3dff990093aa952a2fbb371c1b6 commit ffe1d49cc300f3dff990093aa952a2fbb371c1b6 Author: Stephen Hemminger <shemminger@xxxxxxxxxxxxxxxxxxxx> AuthorDate: Mon Apr 9 11:49:58 2007 -0700 Commit: David S. Miller <davem@xxxxxxxxxxxxxxxxxxxx> CommitDate: Wed Apr 25 22:28:50 2007 -0700 bridge: allow changing hardware address to any valid address For case of bridging pseudo devices, the get created/destroyed (Xen) need to allow setting address to any valid value. Signed-off-by: Stephen Hemminger <shemminger@xxxxxxxxxxxxxxxxxxxx> diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c index b22ada5..39b87da 100644 --- a/net/bridge/br_device.c +++ b/net/bridge/br_device.c @@ -83,27 +83,22 @@ static int br_change_mtu(struct net_device *dev, int new_mtu) return 0; } -/* Allow setting mac address of pseudo-bridge to be same as - * any of the bound interfaces - */ +/* Allow setting mac address to any valid ethernet address. */ static int br_set_mac_address(struct net_device *dev, void *p) { struct net_bridge *br = netdev_priv(dev); struct sockaddr *addr = p; struct net_bridge_port *port; - int err = -EADDRNOTAVAIL; + + if (!is_valid_ether_addr(addr->sa_data)) + return -EINVAL; spin_lock_bh(&br->lock); - list_for_each_entry(port, &br->port_list, list) { - if (!compare_ether_addr(port->dev->dev_addr, addr->sa_data)) { - br_stp_change_bridge_id(br, addr->sa_data); - err = 0; - break; - } - } + memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN); + br_stp_change_bridge_id(br, addr->sa_data); spin_unlock_bh(&br->lock); - return err; + return 0; } static void br_getinfo(struct net_device *dev, struct ethtool_drvinfo *info) On Thu, Mar 13, 2008 at 10:09 AM, Philip Prindeville <philipp_subx@xxxxxxxxxxxxxxxxxxxxx> wrote: > > Well, I don't get it then. > > I'm running Linux 2.6.20, with bridge-utils-1.2, and I'm still seeing it. > > Can you send me the link to the patch, and I'll make sure it's in my > sources? > > Thanks, > > -Philip _______________________________________________ Bridge mailing list Bridge@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/bridge