diff --git a/drivers/net/ethernet/marvell/oak/oak.c b/drivers/net/ethernet/marvell/oak/oak.c index 900078be..09c4bfaf 100644 --- a/drivers/net/ethernet/marvell/oak/oak.c +++ b/drivers/net/ethernet/marvell/oak/oak.c @@ -646,7 +646,7 @@ static void oak_read_set_mac_address(struct pci_dev *pdev) if (rc != 0) { pr_info("Device MAC address : %pM\n", device_mac); ether_addr_copy(np->mac_address, nic_mac); - ether_addr_copy(netdev->dev_addr, nic_mac); + eth_hw_addr_set(netdev, nic_mac); pr_info("MAC address of NIC : %pM\n", nic_mac); } } diff --git a/drivers/net/ethernet/marvell/oak/oak_net.c b/drivers/net/ethernet/marvell/oak/oak_net.c index 4feb6e56..5d58b21d 100644 --- a/drivers/net/ethernet/marvell/oak/oak_net.c +++ b/drivers/net/ethernet/marvell/oak/oak_net.c @@ -574,7 +574,11 @@ void oak_net_add_napi(struct net_device *netdev) while (num_ldg > 0) { /* Initialize a napi context */ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0) + netif_napi_add_weight(netdev, &ldg->napi, oak_net_poll, napi_wt); +#else netif_napi_add(netdev, &ldg->napi, oak_net_poll, napi_wt); +#endif /* Enable NAPI scheduling */ napi_enable(&ldg->napi); ++ldg; @@ -626,7 +630,8 @@ int oak_net_set_mac_addr(struct net_device *dev, void *p_addr) if (rc == 0) { rc = -EINVAL; } else { - memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN); + //memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN); + dev_addr_mod(dev, 0, addr->sa_data, ETH_ALEN); /* When an interface come up we need to remember the * MAC address of an interface. Because the same MAC diff --git a/drivers/net/ethernet/marvell/oak/oak_net.h b/drivers/net/ethernet/marvell/oak/oak_net.h index 724ceb36..0f90a486 100644 --- a/drivers/net/ethernet/marvell/oak/oak_net.h +++ b/drivers/net/ethernet/marvell/oak/oak_net.h @@ -29,6 +29,8 @@ /* Include for relation to classifier linux/if_vlan.h */ #include "linux/if_vlan.h" +#include + #define OAK_ONEBYTE 1 extern u32 rxs;