if (!f)
                        goto add_filter_out;
 
-               memcpy(f->macaddr, macaddr, ETH_ALEN);
+               ether_addr_copy(f->macaddr, macaddr);
                f->vlan = vlan;
                f->changed = true;
 
                        return -EADDRNOTAVAIL;
                }
 
-               memcpy(vsi->back->hw.mac.addr, addr->sa_data, netdev->addr_len);
+               ether_addr_copy(vsi->back->hw.mac.addr, addr->sa_data);
        }
 
        /* In order to be sure to not drop any packets, add the new address
        i40e_del_filter(vsi, netdev->dev_addr, I40E_VLAN_ANY, false, false);
        i40e_sync_vsi_filters(vsi);
 
-       memcpy(netdev->dev_addr, addr->sa_data, netdev->addr_len);
+       ether_addr_copy(netdev->dev_addr, addr->sa_data);
 
        return 0;
 }
                        cmd_flags = 0;
 
                        /* add to delete list */
-                       memcpy(del_list[num_del].mac_addr,
-                              f->macaddr, ETH_ALEN);
+                       ether_addr_copy(del_list[num_del].mac_addr, f->macaddr);
                        del_list[num_del].vlan_tag =
                                cpu_to_le16((u16)(f->vlan ==
                                            I40E_VLAN_ANY ? 0 : f->vlan));
                        cmd_flags = 0;
 
                        /* add to add array */
-                       memcpy(add_list[num_add].mac_addr,
-                              f->macaddr, ETH_ALEN);
+                       ether_addr_copy(add_list[num_add].mac_addr, f->macaddr);
                        add_list[num_add].vlan_tag =
                                cpu_to_le16(
                                 (u16)(f->vlan == I40E_VLAN_ANY ? 0 : f->vlan));
 
        if (vsi->type == I40E_VSI_MAIN) {
                SET_NETDEV_DEV(netdev, &pf->pdev->dev);
-               memcpy(mac_addr, hw->mac.perm_addr, ETH_ALEN);
+               ether_addr_copy(mac_addr, hw->mac.perm_addr);
                /* The following two steps are necessary to prevent reception
                 * of tagged packets - by default the NVM loads a MAC-VLAN
                 * filter that will accept any tagged packet.  This is to
        }
        i40e_add_filter(vsi, brdcast, I40E_VLAN_ANY, false, false);
 
-       memcpy(netdev->dev_addr, mac_addr, ETH_ALEN);
-       memcpy(netdev->perm_addr, mac_addr, ETH_ALEN);
+       ether_addr_copy(netdev->dev_addr, mac_addr);
+       ether_addr_copy(netdev->perm_addr, mac_addr);
        /* vlan gets same features (except vlan offload)
         * after any tweaks for specific VSI types
         */
                goto err_mac_addr;
        }
        dev_info(&pdev->dev, "MAC address: %pM\n", hw->mac.addr);
-       memcpy(hw->mac.perm_addr, hw->mac.addr, ETH_ALEN);
+       ether_addr_copy(hw->mac.perm_addr, hw->mac.addr);
 
        pci_set_drvdata(pdev, pf);
        pci_save_state(pdev);
 
                        return NULL;
                }
 
-               memcpy(f->macaddr, macaddr, ETH_ALEN);
+               ether_addr_copy(f->macaddr, macaddr);
 
                list_add(&f->list, &adapter->mac_filter_list);
                f->add = true;
 
        f = i40evf_add_filter(adapter, addr->sa_data);
        if (f) {
-               memcpy(hw->mac.addr, addr->sa_data, netdev->addr_len);
-               memcpy(netdev->dev_addr, adapter->hw.mac.addr,
-                      netdev->addr_len);
+               ether_addr_copy(hw->mac.addr, addr->sa_data);
+               ether_addr_copy(netdev->dev_addr, adapter->hw.mac.addr);
        }
 
        return (f == NULL) ? -ENOMEM : 0;
                         adapter->hw.mac.addr);
                random_ether_addr(adapter->hw.mac.addr);
        }
-       memcpy(netdev->dev_addr, adapter->hw.mac.addr, netdev->addr_len);
-       memcpy(netdev->perm_addr, adapter->hw.mac.addr, netdev->addr_len);
+       ether_addr_copy(netdev->dev_addr, adapter->hw.mac.addr);
+       ether_addr_copy(netdev->perm_addr, adapter->hw.mac.addr);
 
        INIT_LIST_HEAD(&adapter->mac_filter_list);
        INIT_LIST_HEAD(&adapter->vlan_filter_list);
        if (NULL == f)
                goto err_sw_init;
 
-       memcpy(f->macaddr, adapter->hw.mac.addr, ETH_ALEN);
+       ether_addr_copy(f->macaddr, adapter->hw.mac.addr);
        f->add = true;
        adapter->aq_required |= I40EVF_FLAG_AQ_ADD_MAC_FILTER;
 
 
        veal->num_elements = count;
        list_for_each_entry(f, &adapter->mac_filter_list, list) {
                if (f->add) {
-                       memcpy(veal->list[i].addr, f->macaddr, ETH_ALEN);
+                       ether_addr_copy(veal->list[i].addr, f->macaddr);
                        i++;
                        f->add = false;
                }
        veal->num_elements = count;
        list_for_each_entry_safe(f, ftmp, &adapter->mac_filter_list, list) {
                if (f->remove) {
-                       memcpy(veal->list[i].addr, f->macaddr, ETH_ALEN);
+                       ether_addr_copy(veal->list[i].addr, f->macaddr);
                        i++;
                        list_del(&f->list);
                        kfree(f);