Patrick McHardy wrote:
Patrick McHardy wrote:
[VLAN]: Fix MAC address handling

+static void vlan_sync_address(struct net_device *dev,
+                             struct net_device *vlandev)
+{
+       struct vlan_dev_info *vlan = VLAN_DEV_INFO(vlandev);
+
+       if (!compare_ether_addr(vlan->real_dev_addr, dev->dev_addr))
+               return;
+
+       if (compare_ether_addr(vlandev->dev_addr, dev->dev_addr))
+               dev_unicast_add(dev, vlandev->dev_addr, ETH_ALEN);
+       else
+               dev_unicast_delete(dev, vlandev->dev_addr, ETH_ALEN);
+
+       memcpy(vlan->real_dev_addr, dev->dev_addr, ETH_ALEN);
+}


Unfortunately the one case I didn't test is still wrong :|

The above synchronization incorrectly removes the address in case
if was different before and is still different afterwards. This
patch is fixed and contains a few comments as an added bonus :)

The new patch looks good to me..though this is some tricky code
so I might have missed something...

Thanks,
Ben

--
Ben Greear <[EMAIL PROTECTED]>
Candela Technologies Inc  http://www.candelatech.com

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to