summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Marangi <ansuelsmth@gmail.com>2022-10-19 23:48:42 +0200
committerChristian Marangi <ansuelsmth@gmail.com>2023-05-22 22:28:17 +0200
commit5f987b84ef0b5d6dc2bcc3d15819e1358d1f3eb0 (patch)
tree8828aab37906ce89aae86558a27910b2893b3ff2
parent4ed347aaad5de7b50d047f29aa99138b9b265daa (diff)
downloadopenwrt-5f987b84ef0b5d6dc2bcc3d15819e1358d1f3eb0.tar.gz
openwrt-5f987b84ef0b5d6dc2bcc3d15819e1358d1f3eb0.tar.bz2
openwrt-5f987b84ef0b5d6dc2bcc3d15819e1358d1f3eb0.zip
kernel: refresh IFF_NO_IP_ALIGN ifdef for kernel >= 6.1
Kernel 6.1 expanded the priv_flags to long bitmap so update and restore it to priv_flags. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
-rw-r--r--target/linux/ath25/files/drivers/net/phy/mvswitch.c8
-rw-r--r--target/linux/generic/files/drivers/net/phy/ar8216.c8
2 files changed, 16 insertions, 0 deletions
diff --git a/target/linux/ath25/files/drivers/net/phy/mvswitch.c b/target/linux/ath25/files/drivers/net/phy/mvswitch.c
index 29f2f9f0e8..285d306ef0 100644
--- a/target/linux/ath25/files/drivers/net/phy/mvswitch.c
+++ b/target/linux/ath25/files/drivers/net/phy/mvswitch.c
@@ -312,7 +312,11 @@ mvswitch_config_init(struct phy_device *pdev)
priv->orig_features = dev->features;
#ifdef HEADER_MODE
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,1,0)
+ dev->priv_flags |= IFF_NO_IP_ALIGN;
+#else
dev->extra_priv_flags |= IFF_NO_IP_ALIGN;
+#endif
dev->features |= NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_CTAG_TX;
#else
dev->features |= NETIF_F_HW_VLAN_CTAG_RX;
@@ -372,7 +376,11 @@ mvswitch_detach(struct phy_device *pdev)
dev->eth_mangle_rx = NULL;
dev->eth_mangle_tx = NULL;
dev->features = priv->orig_features;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,1,0)
+ dev->priv_flags &= ~IFF_NO_IP_ALIGN;
+#else
dev->extra_priv_flags &= ~IFF_NO_IP_ALIGN;
+#endif
}
static void
diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.c b/target/linux/generic/files/drivers/net/phy/ar8216.c
index 5e248f856e..876754597a 100644
--- a/target/linux/generic/files/drivers/net/phy/ar8216.c
+++ b/target/linux/generic/files/drivers/net/phy/ar8216.c
@@ -2459,7 +2459,11 @@ ar8xxx_phy_config_init(struct phy_device *phydev)
/* VID fixup only needed on ar8216 */
if (chip_is_ar8216(priv)) {
dev->phy_ptr = priv;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,1,0)
+ dev->priv_flags |= IFF_NO_IP_ALIGN;
+#else LINUX_VERSION_CODE >= KERNEL_VERSION(5,15,0)
dev->extra_priv_flags |= IFF_NO_IP_ALIGN;
+#endif
dev->eth_mangle_rx = ar8216_mangle_rx;
dev->eth_mangle_tx = ar8216_mangle_tx;
}
@@ -2694,7 +2698,11 @@ ar8xxx_phy_detach(struct phy_device *phydev)
#ifdef CONFIG_ETHERNET_PACKET_MANGLE
dev->phy_ptr = NULL;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,1,0)
+ dev->priv_flags &= ~IFF_NO_IP_ALIGN;
+#else LINUX_VERSION_CODE >= KERNEL_VERSION(5,15,0)
dev->extra_priv_flags &= ~IFF_NO_IP_ALIGN;
+#endif
dev->eth_mangle_rx = NULL;
dev->eth_mangle_tx = NULL;
#endif