if (data != NULL)
                mesg->sizeoftlvs = data->len;
        if (mac_addr)
-               memcpy(&mesg->content.normal.mac_addr, mac_addr, ETH_ALEN);
+               ether_addr_copy(&mesg->content.normal.mac_addr, mac_addr);
        else
                mesg->content.normal.targetless_le_arp = 1;
        if (atm_addr)
                pr_info("LEC: Arp entry kmalloc failed\n");
                return NULL;
        }
-       memcpy(to_return->mac_addr, mac_addr, ETH_ALEN);
+       ether_addr_copy(to_return->mac_addr, mac_addr);
        INIT_HLIST_NODE(&to_return->next);
        setup_timer(&to_return->timer, lec_arp_expire_arp,
                        (unsigned long)to_return);
                                        entry = tmp;
                                } else {
                                        entry->status = ESI_FORWARD_DIRECT;
-                                       memcpy(entry->mac_addr, mac_addr, ETH_ALEN);
+                                       ether_addr_copy(entry->mac_addr,
+                                                       mac_addr);
                                        entry->last_used = jiffies;
                                        lec_arp_add(priv, entry);
                                }
                                  &priv->lec_arp_empty_ones, next) {
                if (vcc == entry->vcc) {
                        del_timer(&entry->timer);
-                       memcpy(entry->mac_addr, src, ETH_ALEN);
+                       ether_addr_copy(entry->mac_addr, src);
                        entry->status = ESI_FORWARD_DIRECT;
                        entry->last_used = jiffies;
                        /* We might have got an entry */
 
                        return NULL;
                }
        }
-       memcpy(mpc->mps_macs, router_mac, ETH_ALEN);
+       ether_addr_copy(mpc->mps_macs, router_mac);
        tlvs += 20; if (device_type == MPS_AND_MPC) tlvs += 20;
        if (mps_macs > 0)
                memcpy(mpc->mps_macs, tlvs, mps_macs*ETH_ALEN);