From: Stephen Hemminger Assigning a valid random address to bridge device solves problems when bridge device is brought up before adding real device to bridge. When the first real device is added to the bridge, it's address will overide the bridges random address. Note: any device added to a bridge must already have a valid ethernet address. br_add_if -> br_fdb_insert -> fdb_insert -> is_valid_ether_addr Signed-off-by: Stephen Hemminger Signed-off-by: Andrew Morton --- net/bridge/br_device.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff -puN net/bridge/br_device.c~bridge-assign-random-address net/bridge/br_device.c --- a/net/bridge/br_device.c~bridge-assign-random-address +++ a/net/bridge/br_device.c @@ -157,8 +157,7 @@ static struct ethtool_ops br_ethtool_ops void br_dev_setup(struct net_device *dev) { - memset(dev->dev_addr, 0, ETH_ALEN); - + random_ether_addr(dev->dev_addr); ether_setup(dev); dev->do_ioctl = br_dev_ioctl; _