X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=net%2Fbridge%2Fbr_device.c;h=8d013fed52988726e17b65846a72ed84968e53d8;hb=b13b951da047d5cf6fecf12689af48da8f43fc78;hp=0346c215ff6adf581eaf78cbdbd7c295885243e3;hpb=4c4bedf5b3fdd6bacb84222d579eb13706588a34;p=sagit-ice-cold%2Fkernel_xiaomi_msm8998.git diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c index 0346c215ff6a..8d013fed5298 100644 --- a/net/bridge/br_device.c +++ b/net/bridge/br_device.c @@ -200,6 +200,12 @@ static int br_set_mac_address(struct net_device *dev, void *p) if (!is_valid_ether_addr(addr->sa_data)) return -EADDRNOTAVAIL; + /* dev_set_mac_addr() can be called by a master device on bridge's + * NETDEV_UNREGISTER, but since it's being destroyed do nothing + */ + if (dev->reg_state != NETREG_REGISTERED) + return -EBUSY; + spin_lock_bh(&br->lock); if (!ether_addr_equal(dev->dev_addr, addr->sa_data)) { /* Mac address will be changed in br_stp_change_bridge_id(). */