!ether_addr_equal(vlandev->dev_addr, dev->dev_addr))
                dev_uc_add(dev, vlandev->dev_addr);
 
-       memcpy(vlan->real_dev_addr, dev->dev_addr, ETH_ALEN);
+       ether_addr_copy(vlan->real_dev_addr, dev->dev_addr);
 }
 
 static void vlan_transfer_features(struct net_device *dev,
 
                pr_debug("%s: unable to resolve type %X addresses\n",
                         dev->name, ntohs(veth->h_vlan_encapsulated_proto));
 
-               memcpy(veth->h_source, dev->dev_addr, ETH_ALEN);
+               ether_addr_copy(veth->h_source, dev->dev_addr);
                break;
        }
 
                        goto clear_allmulti;
        }
 
-       memcpy(vlan->real_dev_addr, real_dev->dev_addr, ETH_ALEN);
+       ether_addr_copy(vlan->real_dev_addr, real_dev->dev_addr);
 
        if (vlan->flags & VLAN_FLAG_GVRP)
                vlan_gvrp_request_join(dev);
                dev_uc_del(real_dev, dev->dev_addr);
 
 out:
-       memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN);
+       ether_addr_copy(dev->dev_addr, addr->sa_data);
        return 0;
 }