1--- a/src/fuxi-gmac-phy.c 2025-08-03 00:00:00.000000000 +0000
2+++ b/src/fuxi-gmac-phy.c 2025-08-03 00:00:00.000000000 +0000
3@@ -322,8 +322,10 @@
4 static void fxgmac_phy_link_poll(unsigned long data)
5 #endif
6 {
7-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0))
8+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,16,0))
9+ struct fxgmac_pdata *pdata = container_of(t, struct fxgmac_pdata, expansion.phy_poll_tm);
10+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0))
11 struct fxgmac_pdata *pdata = from_timer(pdata, t, expansion.phy_poll_tm);
12 #else
13 struct fxgmac_pdata *pdata = (struct fxgmac_pdata*)data;
14 #endif
15@@ -350,13 +352,17 @@
16
17 int fxgmac_phy_timer_init(struct fxgmac_pdata *pdata)
18 {
19-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0))
20+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,16,0))
21+ timer_setup(&pdata->expansion.phy_poll_tm, fxgmac_phy_link_poll, 0);
22+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0))
23 init_timer_key(&pdata->expansion.phy_poll_tm, NULL, 0, "fuxi_phy_link_update_timer", NULL);
24 #else
25 init_timer_key(&pdata->expansion.phy_poll_tm, 0, "fuxi_phy_link_update_timer", NULL);
26 #endif
27 pdata->expansion.phy_poll_tm.expires = jiffies + HZ / 2;
28+#if (LINUX_VERSION_CODE < KERNEL_VERSION(6,16,0))
29 pdata->expansion.phy_poll_tm.function = (void *)(fxgmac_phy_link_poll);
30+#endif
31 #if (LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0))
32 pdata->expansion.phy_poll_tm.data = (unsigned long)pdata;
33 #endif