OSDN Git Service

Merge tag 'char-misc-4.21-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregk...
[uclinux-h8/linux.git] / net / bridge / br_if.c
index d4863f5..41f0a69 100644 (file)
@@ -650,7 +650,16 @@ int br_add_if(struct net_bridge *br, struct net_device *dev,
        if (br_fdb_insert(br, p, dev->dev_addr, 0))
                netdev_err(dev, "failed insert local address bridge forwarding table\n");
 
-       err = nbp_vlan_init(p);
+       if (br->dev->addr_assign_type != NET_ADDR_SET) {
+               /* Ask for permission to use this MAC address now, even if we
+                * don't end up choosing it below.
+                */
+               err = dev_pre_changeaddr_notify(br->dev, dev->dev_addr, extack);
+               if (err)
+                       goto err7;
+       }
+
+       err = nbp_vlan_init(p, extack);
        if (err) {
                netdev_err(dev, "failed to initialize vlan filtering on this port\n");
                goto err7;