unsigned long           expires_at;
        struct atalk_addr       target_addr;
        struct net_device       *dev;
-       char                    hwaddr[6];
+       char                    hwaddr[ETH_ALEN];
        unsigned short          xmit_count;
        struct aarp_entry       *next;
 };
        eah->pa_len      = AARP_PA_ALEN;
        eah->function    = htons(AARP_REQUEST);
 
-       memcpy(eah->hw_src, dev->dev_addr, ETH_ALEN);
+       ether_addr_copy(eah->hw_src, dev->dev_addr);
 
        eah->pa_src_zero = 0;
        eah->pa_src_net  = sat->s_net;
        eah->pa_len      = AARP_PA_ALEN;
        eah->function    = htons(AARP_REPLY);
 
-       memcpy(eah->hw_src, dev->dev_addr, ETH_ALEN);
+       ether_addr_copy(eah->hw_src, dev->dev_addr);
 
        eah->pa_src_zero = 0;
        eah->pa_src_net  = us->s_net;
        if (!sha)
                memset(eah->hw_dst, '\0', ETH_ALEN);
        else
-               memcpy(eah->hw_dst, sha, ETH_ALEN);
+               ether_addr_copy(eah->hw_dst, sha);
 
        eah->pa_dst_zero = 0;
        eah->pa_dst_net  = them->s_net;
        eah->pa_len      = AARP_PA_ALEN;
        eah->function    = htons(AARP_PROBE);
 
-       memcpy(eah->hw_src, dev->dev_addr, ETH_ALEN);
+       ether_addr_copy(eah->hw_src, dev->dev_addr);
 
        eah->pa_src_zero = 0;
        eah->pa_src_net  = us->s_net;
                        break;
 
                /* We can fill one in - this is good. */
-               memcpy(a->hwaddr, ea->hw_src, ETH_ALEN);
+               ether_addr_copy(a->hwaddr, ea->hw_src);
                __aarp_resolved(&unresolved[hash], a, hash);
                if (!unresolved_count)
                        mod_timer(&aarp_timer,