summaryrefslogtreecommitdiff
path: root/net/8021q/vlan.c
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2016-06-29 17:28:16 +0100
committerMark Brown <broonie@kernel.org>2016-06-29 17:28:16 +0100
commit10d832d607c621c101922442f4771737296e1241 (patch)
tree421229d6bb43c301bbf5eb97b11c5901aae66e08 /net/8021q/vlan.c
parent1a695a905c18548062509178b98bc91e67510864 (diff)
parenta370f60a58ec7bad7045803041524ccdc4d79c75 (diff)
downloadlwn-10d832d607c621c101922442f4771737296e1241.tar.gz
lwn-10d832d607c621c101922442f4771737296e1241.zip
Merge tag 'ib-mfd-regulator-arm-v4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd into regulator-rn5t618
Immutable branch between MFD, Regulator and ARM, due for v4.8
Diffstat (limited to 'net/8021q/vlan.c')
-rw-r--r--net/8021q/vlan.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
index a1e273af6fc8..82a116ba590e 100644
--- a/net/8021q/vlan.c
+++ b/net/8021q/vlan.c
@@ -290,6 +290,10 @@ static void vlan_sync_address(struct net_device *dev,
if (ether_addr_equal(vlan->real_dev_addr, dev->dev_addr))
return;
+ /* vlan continues to inherit address of lower device */
+ if (vlan_dev_inherit_address(vlandev, dev))
+ goto out;
+
/* vlan address was different from the old address and is equal to
* the new address */
if (!ether_addr_equal(vlandev->dev_addr, vlan->real_dev_addr) &&
@@ -302,6 +306,7 @@ static void vlan_sync_address(struct net_device *dev,
!ether_addr_equal(vlandev->dev_addr, dev->dev_addr))
dev_uc_add(dev, vlandev->dev_addr);
+out:
ether_addr_copy(vlan->real_dev_addr, dev->dev_addr);
}