ath79: fix ethernet driver build errors on kernel 6.1
authorShiji Yang <yangshiji66@qq.com>
Thu, 25 May 2023 10:35:20 +0000 (18:35 +0800)
committerDavid Bauer <mail@david-bauer.net>
Fri, 8 Sep 2023 16:06:30 +0000 (18:06 +0200)
Some net APIs have changed on the new kernel. Update them to fix
compile errors.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_ethtool.c
target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c

index 104b9320b9de37bcd9813e9f138b7ce55c536afd..e5adc821d279a290cc9a39d74f45fd3450cf91b6 100644 (file)
@@ -80,8 +80,15 @@ static void ag71xx_ethtool_set_msglevel(struct net_device *dev, u32 msg_level)
        ag->msg_enable = msg_level;
 }
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0)
+static void ag71xx_ethtool_get_ringparam(struct net_device *dev,
+                                        struct ethtool_ringparam *er,
+                                        struct kernel_ethtool_ringparam *kernel_ring,
+                                        struct netlink_ext_ack *extack)
+#else
 static void ag71xx_ethtool_get_ringparam(struct net_device *dev,
                                         struct ethtool_ringparam *er)
+#endif
 {
        struct ag71xx *ag = netdev_priv(dev);
 
@@ -99,8 +106,15 @@ static void ag71xx_ethtool_get_ringparam(struct net_device *dev,
                er->tx_pending /= AG71XX_TX_RING_DS_PER_PKT;
 }
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0)
+static int ag71xx_ethtool_set_ringparam(struct net_device *dev,
+                                       struct ethtool_ringparam *er,
+                                       struct kernel_ethtool_ringparam *kernel_ring,
+                                       struct netlink_ext_ack *extack)
+#else
 static int ag71xx_ethtool_set_ringparam(struct net_device *dev,
                                        struct ethtool_ringparam *er)
+#endif
 {
        struct ag71xx *ag = netdev_priv(dev);
        unsigned tx_size;
index 06ebbd8ea3893fe3018eb35780148e348cc41f57..8f95210e0f8c370e23654603177a7d919056b087 100644 (file)
@@ -333,7 +333,7 @@ static unsigned char *ag71xx_speed_str(struct ag71xx *ag)
        return "?";
 }
 
-static void ag71xx_hw_set_macaddr(struct ag71xx *ag, unsigned char *mac)
+static void ag71xx_hw_set_macaddr(struct ag71xx *ag, const unsigned char *mac)
 {
        u32 t;
 
@@ -1166,7 +1166,7 @@ static int ag71xx_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
        switch (cmd) {
        case SIOCSIFHWADDR:
                if (copy_from_user
-                       (dev->dev_addr, ifr->ifr_data, sizeof(dev->dev_addr)))
+                       ((void*)dev->dev_addr, ifr->ifr_data, sizeof(dev->dev_addr)))
                        return -EFAULT;
                return 0;
 
@@ -1669,10 +1669,9 @@ static int ag71xx_probe(struct platform_device *pdev)
        ag->stop_desc->ctrl = 0;
        ag->stop_desc->next = (u32) ag->stop_desc_dma;
 
-       of_get_mac_address(np, dev->dev_addr);
-       if (!is_valid_ether_addr(dev->dev_addr)) {
+       if (of_get_ethdev_address(np, dev)) {
                dev_err(&pdev->dev, "invalid MAC address, using random address\n");
-               eth_random_addr(dev->dev_addr);
+               eth_hw_addr_random(dev);
        }
 
        err = of_get_phy_mode(np, &ag->phy_if_mode);
@@ -1699,7 +1698,11 @@ static int ag71xx_probe(struct platform_device *pdev)
                        break;
                }
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,19,0)
+       netif_napi_add_weight(dev, &ag->napi, ag71xx_poll, AG71XX_NAPI_WEIGHT);
+#else
        netif_napi_add(dev, &ag->napi, ag71xx_poll, AG71XX_NAPI_WEIGHT);
+#endif
 
        ag71xx_dump_regs(ag);