diff mbox series

[net-next,RFC,3/5] r8152: remove backwards compatibility

Message ID 20221108153342.18979-4-albert.zhou.50@gmail.com
State New
Headers show
Series Update r8152 to version two | expand

Commit Message

Albert Zhou Nov. 8, 2022, 3:33 p.m. UTC
Code not used for kernel v6.1 is removed, i.e. code for earlier kernel
versions, denoted by #if LINUX_VERSION_CODE < KERNEL_VERSION(...), has
been deleted, as required by scripts/checkpatch.pl.

Since the driver source has undergone significant changes from its
original, I also deleted my comment in r8152.c, indicating where I
amended netif_napi_add from the original.

Signed-off-by: Albert Zhou <albert.zhou.50@gmail.com>
---
 drivers/net/usb/r8152.c               | 669 +-------------------------
 drivers/net/usb/r8152_compatibility.h | 601 +----------------------
 2 files changed, 8 insertions(+), 1262 deletions(-)
diff mbox series

Patch

diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
index cda0f4ed2a90..85a3b2a7e83b 100644
--- a/drivers/net/usb/r8152.c
+++ b/drivers/net/usb/r8152.c
@@ -914,13 +914,7 @@  struct r8152 {
 	struct delayed_work schedule, hw_phy_work;
 	struct mii_if_info mii;
 	struct mutex control;	/* use for hw setting */
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0)
-	struct vlan_group *vlgrp;
-#endif
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
-	struct net_device_stats stats;
-#endif
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23) && defined(CONFIG_PM_SLEEP)
+#if defined(CONFIG_PM_SLEEP)
 	struct notifier_block pm_notifier;
 #endif
 #if defined(RTL8152_S5_WOL) && defined(CONFIG_PM)
@@ -935,10 +929,8 @@  struct r8152 {
 		void (*up)(struct r8152 *tp);
 		void (*down)(struct r8152 *tp);
 		void (*unload)(struct r8152 *tp);
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)
 		int (*eee_get)(struct r8152 *tp, struct ethtool_eee *eee);
 		int (*eee_set)(struct r8152 *tp, struct ethtool_eee *eee);
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0) */
 		bool (*in_nway)(struct r8152 *tp);
 		void (*hw_phy_cfg)(struct r8152 *tp);
 		void (*autosuspend_en)(struct r8152 *tp, bool enable);
@@ -1631,13 +1623,7 @@  static int set_ethernet_addr(struct r8152 *tp, bool in_resume)
 
 static inline struct net_device_stats *rtl8152_get_stats(struct net_device *dev)
 {
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
-	struct rtl8152 *tp = netdev_priv(dev);
-
-	return (struct net_device_stats *)&tp->stats;
-#else
 	return &dev->stats;
-#endif
 }
 
 static void read_bulk_callback(struct urb *urb)
@@ -2115,62 +2101,15 @@  static inline void rtl_tx_vlan_tag(struct tx_desc *desc, struct sk_buff *skb)
 	}
 }
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0)
-
-static inline bool
-rtl_rx_vlan_tag(struct r8152 *tp, struct rx_desc *desc, struct sk_buff *skb)
-{
-	u32 opts2 = le32_to_cpu(desc->opts2);
-
-	if (tp->vlgrp && (opts2 & RX_VLAN_TAG)) {
-		vlan_gro_receive(&tp->napi, tp->vlgrp, swab16(opts2 & 0xffff),
-				 skb);
-		return true;
-	}
-
-	return false;
-}
-
-static inline void
-rtl_vlan_put_tag(struct r8152 *tp, struct rx_desc *desc, struct sk_buff *skb)
-{
-	u32 opts2 = le32_to_cpu(desc->opts2);
-
-	if (tp->vlgrp && (opts2 & RX_VLAN_TAG))
-		__vlan_hwaccel_put_tag(skb, swab16(opts2 & 0xffff));
-}
-
-static inline __u16
-rtl_vlan_get_tag(struct sk_buff *skb)
-{
-	__u16 tag;
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)
-	__vlan_hwaccel_get_tag(skb, &tag);
-#else
-	tag = skb->vlan_tci;
-#endif
-
-	return tag;
-}
-
-#else
-
 static inline void rtl_rx_vlan_tag(struct rx_desc *desc, struct sk_buff *skb)
 {
 	u32 opts2 = le32_to_cpu(desc->opts2);
 
 	if (opts2 & RX_VLAN_TAG)
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
-		__vlan_hwaccel_put_tag(skb, swab16(opts2 & 0xffff));
-#else
 		__vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q),
 				       swab16(opts2 & 0xffff));
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0) */
 }
 
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0) */
-
 static int r8152_tx_csum(struct r8152 *tp, struct tx_desc *desc,
 			 struct sk_buff *skb, u32 len, u32 transport_offset)
 {
@@ -2581,32 +2520,16 @@  static int rx_bottom(struct r8152 *tp, int budget)
 			struct net_device *netdev = tp->netdev;
 			struct net_device_stats *stats;
 			unsigned int pkt_len;
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0)
-			u16 vlan_tci;
-#endif
 
 			if (!skb)
 				break;
 
 			pkt_len = skb->len;
 			stats = rtl8152_get_stats(netdev);
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0)
-			vlan_tci = rtl_vlan_get_tag(skb);
-
-			if (vlan_tci)
-				vlan_gro_receive(napi, tp->vlgrp, vlan_tci,
-						 skb);
-			else
-				napi_gro_receive(napi, skb);
-#else
 			napi_gro_receive(napi, skb);
-#endif
 
 			work_done++;
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)
-			netdev->last_rx = jiffies;
-#endif
 			stats->rx_packets++;
 			stats->rx_bytes += pkt_len;
 		}
@@ -2688,26 +2611,8 @@  static int rx_bottom(struct r8152 *tp, int budget)
 				get_page(agg->page);
 			}
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
-			skb->dev = netdev;
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22) */
 			skb->protocol = eth_type_trans(skb, netdev);
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0)
-			if (work_done < budget) {
-				if (!rtl_rx_vlan_tag(tp, rx_desc, skb))
-					napi_gro_receive(napi, skb);
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)
-				netdev->last_rx = jiffies;
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29) */
-				work_done++;
-				stats->rx_packets++;
-				stats->rx_bytes += skb->len;
-			} else {
-				rtl_vlan_put_tag(tp, rx_desc, skb);
-				__skb_queue_tail(&tp->rx_queue, skb);
-			}
-#else
 			rtl_rx_vlan_tag(rx_desc, skb);
 			if (work_done < budget) {
 				work_done++;
@@ -2717,7 +2622,6 @@  static int rx_bottom(struct r8152 *tp, int budget)
 			} else {
 				__skb_queue_tail(&tp->rx_queue, skb);
 			}
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0) */
 
 find_next_rx:
 			rx_data = rx_agg_align(rx_data + pkt_len + ETH_FCS_LEN);
@@ -2800,11 +2704,7 @@  static void tx_bottom(struct r8152 *tp)
 	} while (res == 0);
 }
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5,9,0)
-static void bottom_half(unsigned long t)
-#else
 static void bottom_half(struct tasklet_struct *t)
-#endif
 {
 	struct r8152 *tp = from_tasklet(tp, t, tx_tl);
 
@@ -2832,40 +2732,16 @@  static inline int __r8152_poll(struct r8152 *tp, int budget)
 	work_done = rx_bottom(tp, budget);
 
 	if (work_done < budget) {
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4,10,0)
-		napi_complete_done(napi, work_done);
-#else
 		if (!napi_complete_done(napi, work_done))
 			goto out;
-#endif
 		if (!list_empty(&tp->rx_done))
 			napi_schedule(napi);
 	}
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)
 out:
-#endif
 	return work_done;
 }
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
-
-static int r8152_poll(struct net_device *dev, int *budget)
-{
-	struct r8152 *tp = netdev_priv(dev);
-	int quota = min(dev->quota, *budget);
-	int work_done;
-
-	work_done = __r8152_poll(tp, quota);
-
-	*budget -= work_done;
-	dev->quota -= work_done;
-
-	return (work_done >= quota);
-}
-
-#else
-
 static int r8152_poll(struct napi_struct *napi, int budget)
 {
 	struct r8152 *tp = container_of(napi, struct r8152, napi);
@@ -2873,8 +2749,6 @@  static int r8152_poll(struct napi_struct *napi, int budget)
 	return __r8152_poll(tp, budget);
 }
 
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) */
-
 static
 int r8152_submit_rx(struct r8152 *tp, struct rx_agg *agg, gfp_t mem_flags)
 {
@@ -2931,25 +2805,13 @@  static void rtl_drop_queued_tx(struct r8152 *tp)
 	}
 }
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5,6,0)
-static void rtl8152_tx_timeout(struct net_device *netdev)
-#else
 static void rtl8152_tx_timeout(struct net_device *netdev, unsigned int txqueue)
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,6,0) */
 {
 	struct r8152 *tp = netdev_priv(netdev);
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)
-	int i;
-#endif
 
 	netif_warn(tp, tx_err, netdev, "Tx timeout\n");
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)
-	for (i = 0; i < RTL8152_MAX_TX; i++)
-		usb_unlink_urb(tp->tx_info[i].urb);
-#else
 	usb_queue_reset_device(tp->intf);
-#endif
 }
 
 static void rtl8152_set_rx_mode(struct net_device *netdev)
@@ -2990,21 +2852,6 @@  static void rtl8152_set_rx_mode(struct net_device *netdev)
 		mc_filter[1] = 0xffffffff;
 		mc_filter[0] = 0xffffffff;
 	} else {
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)
-		struct dev_mc_list *mclist;
-		unsigned int i;
-
-		mc_filter[1] = mc_filter[0] = 0;
-		for (i = 0, mclist = netdev->mc_list;
-		     mclist && i < netdev->mc_count;
-		     i++, mclist = mclist->next) {
-			int bit_nr;
-
-			bit_nr = ether_crc(ETH_ALEN, mclist->dmi_addr) >> 26;
-			mc_filter[bit_nr >> 5] |= 1 << (bit_nr & 31);
-			ocp_data |= RCR_AM;
-		}
-#else
 		struct netdev_hw_addr *ha;
 
 		mc_filter[1] = 0;
@@ -3015,7 +2862,6 @@  static void rtl8152_set_rx_mode(struct net_device *netdev)
 			mc_filter[bit_nr >> 5] |= 1 << (bit_nr & 31);
 			ocp_data |= RCR_AM;
 		}
-#endif
 	}
 
 	tmp[0] = __cpu_to_le32(swab32(mc_filter[1]));
@@ -3038,8 +2884,6 @@  static inline bool rtl_gso_check(struct net_device *dev, struct sk_buff *skb)
 		return false;
 }
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,4)
-
 static netdev_features_t
 rtl8152_features_check(struct sk_buff *skb, struct net_device *dev,
 		       netdev_features_t features)
@@ -3055,40 +2899,12 @@  rtl8152_features_check(struct sk_buff *skb, struct net_device *dev,
 
 	return features;
 }
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,4) */
 
 static netdev_tx_t rtl8152_start_xmit(struct sk_buff *skb,
 				      struct net_device *netdev)
 {
 	struct r8152 *tp = netdev_priv(netdev);
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,18,4)
-	if (unlikely(!rtl_gso_check(netdev, skb))) {
-		netdev_features_t features = netdev->features;
-		struct sk_buff *segs, *nskb;
-
-		features &= ~(NETIF_F_TSO | NETIF_F_TSO6);
-		segs = skb_gso_segment(skb, features);
-		if (IS_ERR(segs) || !segs)
-			goto free_skb;
-
-		do {
-			nskb = segs;
-			segs = segs->next;
-			nskb->next = NULL;
-			rtl8152_start_xmit(nskb, netdev);
-		} while (segs);
-
-free_skb:
-		dev_kfree_skb_any(skb);
-
-		return NETDEV_TX_OK;
-	}
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
-	netdev->trans_start = jiffies
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,18,4) */
-
 	skb_tx_timestamp(skb);
 
 	skb_queue_tail(&tp->tx_queue, skb);
@@ -3560,43 +3376,6 @@  static void rtl_rx_vlan_en(struct r8152 *tp, bool enable)
 	}
 }
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0)
-
-static void
-rtl8152_vlan_rx_register(struct net_device *dev, struct vlan_group *grp)
-{
-	struct r8152 *tp = netdev_priv(dev);
-
-	if (unlikely(tp->rtk_enable_diag))
-		return;
-
-	if (usb_autopm_get_interface(tp->intf) < 0)
-		return;
-
-	mutex_lock(&tp->control);
-
-	tp->vlgrp = grp;
-	if (tp->vlgrp)
-		rtl_rx_vlan_en(tp, true);
-	else
-		rtl_rx_vlan_en(tp, false);
-
-	mutex_unlock(&tp->control);
-}
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
-
-static void rtl8152_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid)
-{
-	struct r8152 *tp = netdev_priv(dev);
-
-	vlan_group_set_device(tp->vlgrp, vid, NULL);
-}
-
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22) */
-
-#else
-
 static int rtl8152_set_features(struct net_device *dev,
 				netdev_features_t features)
 {
@@ -3628,8 +3407,6 @@  static int rtl8152_set_features(struct net_device *dev,
 	return ret;
 }
 
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0) */
-
 #define WAKE_ANY (WAKE_PHY | WAKE_MAGIC | WAKE_UCAST | WAKE_BCAST | WAKE_MCAST)
 
 static u32 __rtl_get_wol(struct r8152 *tp)
@@ -5214,7 +4991,6 @@  static inline void r8152_mmd_indirect(struct r8152 *tp, u16 dev, u16 reg)
 	ocp_reg_write(tp, OCP_EEE_AR, FUN_DATA | dev);
 }
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)
 static u16 r8152_mmd_read(struct r8152 *tp, u16 dev, u16 reg)
 {
 	u16 data;
@@ -5225,7 +5001,6 @@  static u16 r8152_mmd_read(struct r8152 *tp, u16 dev, u16 reg)
 
 	return data;
 }
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0) */
 
 static void r8152_mmd_write(struct r8152 *tp, u16 dev, u16 reg, u16 data)
 {
@@ -9818,24 +9593,6 @@  static inline void __rtl_hw_phy_work_func(struct r8152 *tp)
 	usb_autopm_put_interface(tp->intf);
 }
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
-
-static void rtl_work_func_t(void *data)
-{
-	struct r8152 *tp = (struct r8152 *)data;
-
-	__rtl_work_func(tp);
-}
-
-static void rtl_hw_phy_work_func_t(void *data)
-{
-	struct r8152 *tp = (struct r8152 *)data;
-
-	__rtl_hw_phy_work_func(tp);
-}
-
-#else
-
 static void rtl_work_func_t(struct work_struct *work)
 {
 	struct r8152 *tp = container_of(work, struct r8152, schedule.work);
@@ -9850,9 +9607,7 @@  static void rtl_hw_phy_work_func_t(struct work_struct *work)
 	__rtl_hw_phy_work_func(tp);
 }
 
-#endif
-
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23) && defined(CONFIG_PM_SLEEP)
+#if defined(CONFIG_PM_SLEEP)
 static int rtl_notifier(struct notifier_block *nb, unsigned long action,
 			void *data)
 {
@@ -9878,7 +9633,7 @@  static int rtl_notifier(struct notifier_block *nb, unsigned long action,
 
 	return NOTIFY_DONE;
 }
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23) && defined(CONFIG_PM_SLEEP) */
+#endif /* defined(CONFIG_PM_SLEEP) */
 
 #if defined(RTL8152_S5_WOL) && defined(CONFIG_PM)
 static int rtl_s5_wol(struct r8152 *tp)
@@ -10030,7 +9785,7 @@  static int rtl8152_open(struct net_device *netdev)
 	mutex_unlock(&tp->control);
 
 	usb_autopm_put_interface(tp->intf);
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23) && defined(CONFIG_PM_SLEEP)
+#if defined(CONFIG_PM_SLEEP)
 	tp->pm_notifier.notifier_call = rtl_notifier;
 	register_pm_notifier(&tp->pm_notifier);
 #endif
@@ -10057,7 +9812,7 @@  static int rtl8152_close(struct net_device *netdev)
 #if defined(RTL8152_S5_WOL) && defined(CONFIG_PM)
 	unregister_reboot_notifier(&tp->reboot_notifier);
 #endif /* defined(RTL8152_S5_WOL) && defined(CONFIG_PM) */
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23) && defined(CONFIG_PM_SLEEP)
+#if defined(CONFIG_PM_SLEEP)
 	unregister_pm_notifier(&tp->pm_notifier);
 #endif
 	tasklet_disable(&tp->tx_tl);
@@ -10320,9 +10075,7 @@  static void r8153_init(struct r8152 *tp)
 
 	switch (tp->udev->speed) {
 	case USB_SPEED_SUPER:
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0)
 	case USB_SPEED_SUPER_PLUS:
-#endif
 		tp->coalesce = COALESCE_SUPER;
 		break;
 	case USB_SPEED_HIGH:
@@ -17738,64 +17491,6 @@  static void r8156b_init(struct r8152 *tp)
 static bool rtl_check_vendor_ok(struct usb_interface *intf)
 {
 	struct usb_host_interface *alt = intf->cur_altsetting;
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4,12,0)
-	struct usb_host_endpoint *in = NULL, *out = NULL, *intr = NULL;
-	unsigned int ep;
-
-	if (alt->desc.bNumEndpoints < 3) {
-		dev_err(&intf->dev, "Unexpected bNumEndpoints %d\n", alt->desc.bNumEndpoints);
-		return false;
-	}
-
-	for (ep = 0; ep < alt->desc.bNumEndpoints; ep++) {
-		struct usb_host_endpoint *e;
-
-		e = alt->endpoint + ep;
-
-		/* ignore endpoints which cannot transfer data */
-		if (!usb_endpoint_maxp(&e->desc))
-			continue;
-
-		switch (e->desc.bmAttributes) {
-		case USB_ENDPOINT_XFER_INT:
-			if (!usb_endpoint_dir_in(&e->desc))
-				continue;
-			if (!intr)
-				intr = e;
-			break;
-		case USB_ENDPOINT_XFER_BULK:
-			if (usb_endpoint_dir_in(&e->desc)) {
-				if (!in)
-					in = e;
-			} else if (!out) {
-				out = e;
-			}
-			break;
-		default:
-			continue;
-		}
-	}
-
-	if (!in || !out || !intr) {
-		dev_err(&intf->dev, "Miss Endpoints\n");
-		return false;
-	}
-
-	if ((in->desc.bEndpointAddress & USB_ENDPOINT_NUMBER_MASK) != 1) {
-		dev_err(&intf->dev, "Invalid Rx endpoint address\n");
-		return false;
-	}
-
-	if ((out->desc.bEndpointAddress & USB_ENDPOINT_NUMBER_MASK) != 2) {
-		dev_err(&intf->dev, "Invalid Tx endpoint address\n");
-		return false;
-	}
-
-	if ((intr->desc.bEndpointAddress & USB_ENDPOINT_NUMBER_MASK) != 3) {
-		dev_err(&intf->dev, "Invalid interrupt endpoint address\n");
-		return false;
-	}
-#else
 	struct usb_endpoint_descriptor *in, *out, *intr;
 
 	if (usb_find_common_endpoints(alt, &in, &out, &intr, NULL) < 0) {
@@ -17820,7 +17515,6 @@  static bool rtl_check_vendor_ok(struct usb_interface *intf)
 		dev_err(&intf->dev, "Invalid interrupt endpoint address\n");
 		return false;
 	}
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4,12,0) */
 
 	return true;
 }
@@ -17835,9 +17529,6 @@  static bool rtl_vendor_mode(struct usb_interface *intf)
 	if (alt->desc.bInterfaceClass == USB_CLASS_VENDOR_SPEC)
 		return rtl_check_vendor_ok(intf);
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
-	dev_err(&intf->dev, "The kernel is too old to set configuration\n");
-#else
 	/* The vendor mode is not always config #1, so to find it out. */
 	udev = interface_to_usbdev(intf);
 	c = udev->config;
@@ -17861,7 +17552,6 @@  static bool rtl_vendor_mode(struct usb_interface *intf)
 
 	if (i == num_configs)
 		dev_err(&intf->dev, "Unexpected Device\n");
-#endif
 
 	return false;
 }
@@ -17907,11 +17597,7 @@  static int rtl8152_post_reset(struct usb_interface *intf)
 	/* reset the MAC address in case of policy change */
 	if (determine_ethernet_addr(tp, &sa) >= 0) {
 		rtnl_lock();
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5,0,0)
-		dev_set_mac_address(tp->netdev, &sa);
-#else
 		dev_set_mac_address(tp->netdev, &sa, NULL);
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,0,0) */
 		rtnl_unlock();
 	}
 
@@ -18240,184 +17926,6 @@  static void rtl8152_get_drvinfo(struct net_device *netdev,
 	usb_make_path(tp->udev, info->bus_info, sizeof(info->bus_info));
 }
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4,20,0)
-static
-int rtl8152_get_settings(struct net_device *netdev, struct ethtool_cmd *cmd)
-{
-	struct r8152 *tp = netdev_priv(netdev);
-	u16 bmcr, bmsr;
-	int ret, advert;
-
-	ret = usb_autopm_get_interface(tp->intf);
-	if (ret < 0)
-		goto out;
-
-	cmd->supported =
-	    (SUPPORTED_10baseT_Half | SUPPORTED_10baseT_Full |
-	     SUPPORTED_100baseT_Half | SUPPORTED_100baseT_Full |
-	     SUPPORTED_Autoneg | SUPPORTED_MII);
-
-	/* only supports twisted-pair */
-	cmd->port = PORT_MII;
-
-	/* only supports internal transceiver */
-	cmd->transceiver = XCVR_INTERNAL;
-	cmd->phy_address = 32;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
-	cmd->mdio_support = ETH_MDIO_SUPPORTS_C22;
-#endif
-	cmd->advertising = ADVERTISED_MII;
-
-	mutex_lock(&tp->control);
-
-	bmcr = r8152_mdio_read(tp, MII_BMCR);
-	bmsr = r8152_mdio_read(tp, MII_BMSR);
-
-	advert = r8152_mdio_read(tp, MII_ADVERTISE);
-	if (advert & ADVERTISE_10HALF)
-		cmd->advertising |= ADVERTISED_10baseT_Half;
-	if (advert & ADVERTISE_10FULL)
-		cmd->advertising |= ADVERTISED_10baseT_Full;
-	if (advert & ADVERTISE_100HALF)
-		cmd->advertising |= ADVERTISED_100baseT_Half;
-	if (advert & ADVERTISE_100FULL)
-		cmd->advertising |= ADVERTISED_100baseT_Full;
-	if (advert & ADVERTISE_PAUSE_CAP)
-		cmd->advertising |= ADVERTISED_Pause;
-	if (advert & ADVERTISE_PAUSE_ASYM)
-		cmd->advertising |= ADVERTISED_Asym_Pause;
-	if (tp->mii.supports_gmii) {
-		u16 ctrl1000 = r8152_mdio_read(tp, MII_CTRL1000);
-
-		cmd->supported |= SUPPORTED_1000baseT_Full;
-
-		if (tp->support_2500full) {
-			u16 data = ocp_reg_read(tp, 0xa5d4);
-
-			cmd->supported |= SUPPORTED_2500baseX_Full;
-			if (data & BIT(7))
-				cmd->advertising |= ADVERTISED_2500baseX_Full;
-		}
-
-		if (ctrl1000 & ADVERTISE_1000HALF)
-			cmd->advertising |= ADVERTISED_1000baseT_Half;
-		if (ctrl1000 & ADVERTISE_1000FULL)
-			cmd->advertising |= ADVERTISED_1000baseT_Full;
-	}
-
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
-	if (bmsr & BMSR_ANEGCOMPLETE) {
-		advert = r8152_mdio_read(tp, MII_LPA);
-		if (advert & LPA_LPACK)
-			cmd->lp_advertising |= ADVERTISED_Autoneg;
-		if (advert & ADVERTISE_10HALF)
-			cmd->lp_advertising |=
-				ADVERTISED_10baseT_Half;
-		if (advert & ADVERTISE_10FULL)
-			cmd->lp_advertising |=
-				ADVERTISED_10baseT_Full;
-		if (advert & ADVERTISE_100HALF)
-			cmd->lp_advertising |=
-				ADVERTISED_100baseT_Half;
-		if (advert & ADVERTISE_100FULL)
-			cmd->lp_advertising |=
-				ADVERTISED_100baseT_Full;
-
-		if (tp->mii.supports_gmii) {
-			u16 stat1000 = r8152_mdio_read(tp, MII_STAT1000);
-
-			if (stat1000 & LPA_1000HALF)
-				cmd->lp_advertising |=
-					ADVERTISED_1000baseT_Half;
-			if (stat1000 & LPA_1000FULL)
-				cmd->lp_advertising |=
-					ADVERTISED_1000baseT_Full;
-		}
-	} else {
-		cmd->lp_advertising = 0;
-	}
-#endif
-
-	if (bmcr & BMCR_ANENABLE) {
-		cmd->advertising |= ADVERTISED_Autoneg;
-		cmd->autoneg = AUTONEG_ENABLE;
-	} else {
-		cmd->autoneg = AUTONEG_DISABLE;
-	}
-
-
-	if (netif_running(netdev) && netif_carrier_ok(netdev)) {
-		u16 speed = rtl8152_get_speed(tp);
-
-		if (speed & _100bps)
-			cmd->speed = SPEED_100;
-		else if (speed & _10bps)
-			cmd->speed = SPEED_10;
-		else if (tp->mii.supports_gmii && (speed & _1000bps))
-			cmd->speed = SPEED_1000;
-		else if (tp->support_2500full && (speed & _2500bps))
-			cmd->speed = SPEED_2500;
-
-		cmd->duplex = (speed & FULL_DUP) ? DUPLEX_FULL : DUPLEX_HALF;
-	} else {
-		cmd->speed = SPEED_UNKNOWN;
-		cmd->duplex = DUPLEX_UNKNOWN;
-	}
-
-	mutex_unlock(&tp->control);
-
-	usb_autopm_put_interface(tp->intf);
-
-out:
-	return ret;
-}
-
-static int rtl8152_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
-{
-	struct r8152 *tp = netdev_priv(dev);
-	u32 advertising = 0;
-	int ret;
-
-	ret = usb_autopm_get_interface(tp->intf);
-	if (ret < 0)
-		goto out;
-
-	if (cmd->advertising & ADVERTISED_10baseT_Half)
-		advertising |= RTL_ADVERTISED_10_HALF;
-	if (cmd->advertising & ADVERTISED_10baseT_Full)
-		advertising |= RTL_ADVERTISED_10_FULL;
-	if (cmd->advertising & ADVERTISED_100baseT_Half)
-		advertising |= RTL_ADVERTISED_100_HALF;
-	if (cmd->advertising & ADVERTISED_100baseT_Full)
-		advertising |= RTL_ADVERTISED_100_FULL;
-	if (cmd->advertising & ADVERTISED_1000baseT_Half)
-		advertising |= RTL_ADVERTISED_1000_HALF;
-	if (cmd->advertising & ADVERTISED_1000baseT_Full)
-		advertising |= RTL_ADVERTISED_1000_FULL;
-	if (cmd->advertising & ADVERTISED_2500baseX_Full)
-		advertising |= RTL_ADVERTISED_2500_FULL;
-
-	mutex_lock(&tp->control);
-
-	ret = rtl8152_set_speed(tp, cmd->autoneg, cmd->speed, cmd->duplex,
-				advertising);
-	if (!ret) {
-		tp->autoneg = cmd->autoneg;
-		tp->speed = cmd->speed;
-		tp->duplex = cmd->duplex;
-		tp->advertising = advertising;
-	}
-
-	mutex_unlock(&tp->control);
-
-	usb_autopm_put_interface(tp->intf);
-
-out:
-	return ret;
-}
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4,20,0) */
-
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0)
 static int rtl8152_get_link_ksettings(struct net_device *netdev,
 				      struct ethtool_link_ksettings *cmd)
 {
@@ -18628,7 +18136,6 @@  static int rtl8152_set_link_ksettings(struct net_device *dev,
 out:
 	return ret;
 }
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0) */
 
 static const char rtl8152_gstrings[][ETH_GSTRING_LEN] = {
 	"tx_packets",
@@ -18646,12 +18153,6 @@  static const char rtl8152_gstrings[][ETH_GSTRING_LEN] = {
 	"tx_underrun",
 };
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-static int rtl8152_get_sset_count(struct net_device *dev)
-{
-	return ARRAY_SIZE(rtl8152_gstrings);
-}
-#else
 static int rtl8152_get_sset_count(struct net_device *dev, int sset)
 {
 	switch (sset) {
@@ -18661,7 +18162,6 @@  static int rtl8152_get_sset_count(struct net_device *dev, int sset)
 		return -EOPNOTSUPP;
 	}
 }
-#endif
 
 static void rtl8152_get_ethtool_stats(struct net_device *dev,
 				      struct ethtool_stats *stats, u64 *data)
@@ -18707,7 +18207,6 @@  static void rtl8152_get_strings(struct net_device *dev, u32 stringset, u8 *data)
 	}
 }
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)
 static int r8152_get_eee(struct r8152 *tp, struct ethtool_eee *eee)
 {
 	u32 lp, adv, supported = 0;
@@ -18821,7 +18320,6 @@  rtl_ethtool_set_eee(struct net_device *net, struct ethtool_eee *edata)
 out:
 	return ret;
 }
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0) */
 
 static int rtl8152_nway_reset(struct net_device *dev)
 {
@@ -18845,13 +18343,9 @@  static int rtl8152_nway_reset(struct net_device *dev)
 }
 
 static int rtl8152_get_coalesce(struct net_device *netdev,
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5,15,0)
-				struct ethtool_coalesce *coalesce)
-#else
 				struct ethtool_coalesce *coalesce,
 				struct kernel_ethtool_coalesce *kernel_coal,
 				struct netlink_ext_ack *extack)
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,15,0) */
 {
 	struct r8152 *tp = netdev_priv(netdev);
 
@@ -18870,13 +18364,9 @@  static int rtl8152_get_coalesce(struct net_device *netdev,
 }
 
 static int rtl8152_set_coalesce(struct net_device *netdev,
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5,15,0)
-				struct ethtool_coalesce *coalesce)
-#else
 				struct ethtool_coalesce *coalesce,
 				struct kernel_ethtool_coalesce *kernel_coal,
 				struct netlink_ext_ack *extack)
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,15,0) */
 {
 	struct r8152 *tp = netdev_priv(netdev);
 	u32 rx_coalesce_nsecs;
@@ -18935,7 +18425,6 @@  static int rtl8152_ethtool_begin(struct net_device *netdev)
 	return 0;
 }
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0)
 static int rtl8152_get_tunable(struct net_device *netdev,
 			       const struct ethtool_tunable *tunable, void *d)
 {
@@ -18986,16 +18475,11 @@  static int rtl8152_set_tunable(struct net_device *netdev,
 
 	return 0;
 }
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0) */
 
 static void rtl8152_get_ringparam(struct net_device *netdev,
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5,17,0)
-				  struct ethtool_ringparam *ring)
-#else
 				  struct ethtool_ringparam *ring,
 				  struct kernel_ethtool_ringparam *kernel_ring,
 				  struct netlink_ext_ack *extack)
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,15,0) */
 {
 	struct r8152 *tp = netdev_priv(netdev);
 
@@ -19004,13 +18488,9 @@  static void rtl8152_get_ringparam(struct net_device *netdev,
 }
 
 static int rtl8152_set_ringparam(struct net_device *netdev,
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5,17,0)
-				 struct ethtool_ringparam *ring)
-#else
 				 struct ethtool_ringparam *ring,
 				 struct kernel_ethtool_ringparam *kernel_ring,
 				 struct netlink_ext_ack *extack)
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,15,0) */
 {
 	struct r8152 *tp = netdev_priv(netdev);
 
@@ -19111,14 +18591,8 @@  static int rtl8152_set_pauseparam(struct net_device *netdev, struct ethtool_paus
 }
 
 static const struct ethtool_ops ops = {
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0)
 	.supported_coalesce_params = ETHTOOL_COALESCE_USECS,
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0) */
 	.get_drvinfo = rtl8152_get_drvinfo,
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4,20,0)
-	.get_settings = rtl8152_get_settings,
-	.set_settings = rtl8152_set_settings,
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4,20,0) */
 	.get_link = ethtool_op_get_link,
 	.nway_reset = rtl8152_nway_reset,
 	.get_msglevel = rtl8152_get_msglevel,
@@ -19128,31 +18602,15 @@  static const struct ethtool_ops ops = {
 	.get_strings = rtl8152_get_strings,
 	.get_sset_count = rtl8152_get_sset_count,
 	.get_ethtool_stats = rtl8152_get_ethtool_stats,
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)
-	.get_tx_csum = ethtool_op_get_tx_csum,
-	.set_tx_csum = ethtool_op_set_tx_csum,
-	.get_sg = ethtool_op_get_sg,
-	.set_sg = ethtool_op_set_sg,
-#ifdef NETIF_F_TSO
-	.get_tso = ethtool_op_get_tso,
-	.set_tso = ethtool_op_set_tso,
-#endif
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) */
 	.get_coalesce = rtl8152_get_coalesce,
 	.set_coalesce = rtl8152_set_coalesce,
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)
 	.get_eee = rtl_ethtool_get_eee,
 	.set_eee = rtl_ethtool_set_eee,
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0) */
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0)
 	.get_link_ksettings = rtl8152_get_link_ksettings,
 	.set_link_ksettings = rtl8152_set_link_ksettings,
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0) */
 	.begin = rtl8152_ethtool_begin,
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0)
 	.get_tunable = rtl8152_get_tunable,
 	.set_tunable = rtl8152_set_tunable,
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0) */
 	.get_ringparam = rtl8152_get_ringparam,
 	.set_ringparam = rtl8152_set_ringparam,
 	.get_pauseparam = rtl8152_get_pauseparam,
@@ -19338,7 +18796,6 @@  static int rtltool_ioctl(struct r8152 *tp, struct ifreq *ifr)
 	return ret;
 }
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,15,0)
 static int rtl8152_siocdevprivate(struct net_device *netdev, struct ifreq *rq,
 				  void __user *data, int cmd)
 {
@@ -19370,7 +18827,6 @@  static int rtl8152_siocdevprivate(struct net_device *netdev, struct ifreq *rq,
 out:
 	return ret;
 }
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5,15,0) */
 
 static int rtl8152_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd)
 {
@@ -19417,16 +18873,6 @@  static int rtl8152_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd)
 		mutex_unlock(&tp->control);
 		break;
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5,15,0)
-	case SIOCDEVPRIVATE:
-		if (!capable(CAP_NET_ADMIN)) {
-			ret = -EPERM;
-			break;
-		}
-		ret = rtltool_ioctl(tp, rq);
-		break;
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,15,0) */
-
 	default:
 		ret = -EOPNOTSUPP;
 	}
@@ -19441,56 +18887,17 @@  static int rtl8152_change_mtu(struct net_device *dev, int new_mtu)
 {
 	struct r8152 *tp = netdev_priv(dev);
 	int ret;
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4,10,0)
-	u32 max_mtu;
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4,10,0) */
 
 	switch (tp->version) {
 	case RTL_VER_01:
 	case RTL_VER_02:
 	case RTL_VER_07:
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4,10,0)
-		return eth_change_mtu(dev, new_mtu);
-#else
 		dev->mtu = new_mtu;
 		return 0;
-#endif
 	default:
 		break;
 	}
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4,10,0)
-	switch (tp->version) {
-	case RTL_VER_03:
-	case RTL_VER_04:
-	case RTL_VER_05:
-	case RTL_VER_06:
-	case RTL_VER_08:
-	case RTL_VER_09:
-	case RTL_VER_14:
-		max_mtu = size_to_mtu(9 * 1024);
-		break;
-	case RTL_VER_10:
-	case RTL_VER_11:
-		max_mtu = size_to_mtu(15 * 1024);
-		break;
-	case RTL_VER_12:
-	case RTL_VER_13:
-	case RTL_VER_15:
-		max_mtu = size_to_mtu(16 * 1024);
-		break;
-	case RTL_VER_01:
-	case RTL_VER_02:
-	case RTL_VER_07:
-	default:
-		max_mtu = ETH_DATA_LEN;
-		break;
-	}
-
-	if (new_mtu < 68 || new_mtu > max_mtu)
-		return -EINVAL;
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4,10,0) */
-
 	ret = usb_autopm_get_interface(tp->intf);
 	if (ret < 0)
 		return ret;
@@ -19524,32 +18931,20 @@  static int rtl8152_change_mtu(struct net_device *dev, int new_mtu)
 	return ret;
 }
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)
 static const struct net_device_ops rtl8152_netdev_ops = {
 	.ndo_open		= rtl8152_open,
 	.ndo_stop		= rtl8152_close,
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5,15,0)
-	.ndo_do_ioctl		= rtl8152_ioctl,
-#else
 	.ndo_siocdevprivate	= rtl8152_siocdevprivate,
 	.ndo_eth_ioctl		= rtl8152_ioctl,
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,15,0) */
 	.ndo_start_xmit		= rtl8152_start_xmit,
 	.ndo_tx_timeout		= rtl8152_tx_timeout,
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0)
-	.ndo_vlan_rx_register	= rtl8152_vlan_rx_register,
-#else
 	.ndo_set_features	= rtl8152_set_features,
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0) */
 	.ndo_set_rx_mode	= rtl8152_set_rx_mode,
 	.ndo_set_mac_address	= rtl8152_set_mac_address,
 	.ndo_change_mtu		= rtl8152_change_mtu,
 	.ndo_validate_addr	= eth_validate_addr,
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,4)
 	.ndo_features_check	= rtl8152_features_check,
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,4) */
 };
-#endif
 
 static void rtl8152_unload(struct r8152 *tp)
 {
@@ -19591,10 +18986,8 @@  static int rtl_ops_init(struct r8152 *tp)
 		ops->up			= rtl8152_up;
 		ops->down		= rtl8152_down;
 		ops->unload		= rtl8152_unload;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)
 		ops->eee_get		= r8152_get_eee;
 		ops->eee_set		= r8152_set_eee;
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0) */
 		ops->in_nway		= rtl8152_in_nway;
 		ops->hw_phy_cfg		= r8152b_hw_phy_cfg;
 		ops->autosuspend_en	= rtl_runtime_suspend_enable;
@@ -19613,10 +19006,8 @@  static int rtl_ops_init(struct r8152 *tp)
 		ops->up			= rtl8153_up;
 		ops->down		= rtl8153_down;
 		ops->unload		= rtl8153_unload;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)
 		ops->eee_get		= r8153_get_eee;
 		ops->eee_set		= r8152_set_eee;
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0) */
 		ops->in_nway		= rtl8153_in_nway;
 		ops->hw_phy_cfg		= r8153_hw_phy_cfg;
 		ops->autosuspend_en	= rtl8153_runtime_enable;
@@ -19637,10 +19028,8 @@  static int rtl_ops_init(struct r8152 *tp)
 		ops->up			= rtl8153b_up;
 		ops->down		= rtl8153b_down;
 		ops->unload		= rtl8153b_unload;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)
 		ops->eee_get		= r8153_get_eee;
 		ops->eee_set		= r8152_set_eee;
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0) */
 		ops->in_nway		= rtl8153_in_nway;
 		ops->hw_phy_cfg		= r8153b_hw_phy_cfg;
 		ops->autosuspend_en	= rtl8153b_runtime_enable;
@@ -19679,10 +19068,8 @@  static int rtl_ops_init(struct r8152 *tp)
 		ops->up			= rtl8156_up;
 		ops->down		= rtl8156_down;
 		ops->unload		= rtl8153_unload;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)
 		ops->eee_get		= r8153_get_eee;
 		ops->eee_set		= r8152_set_eee;
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0) */
 		ops->in_nway		= rtl8153_in_nway;
 		ops->hw_phy_cfg		= r8156_hw_phy_cfg;
 		ops->autosuspend_en	= rtl8156_runtime_enable;
@@ -19704,10 +19091,8 @@  static int rtl_ops_init(struct r8152 *tp)
 		ops->up			= rtl8156_up;
 		ops->down		= rtl8156_down;
 		ops->unload		= rtl8153_unload;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)
 		ops->eee_get		= r8153_get_eee;
 		ops->eee_set		= r8152_set_eee;
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0) */
 		ops->in_nway		= rtl8153_in_nway;
 		ops->hw_phy_cfg		= r8156b_hw_phy_cfg;
 		ops->autosuspend_en	= rtl8156_runtime_enable;
@@ -19722,10 +19107,8 @@  static int rtl_ops_init(struct r8152 *tp)
 		ops->up			= rtl8153c_up;
 		ops->down		= rtl8153b_down;
 		ops->unload		= rtl8153_unload;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)
 		ops->eee_get		= r8153_get_eee;
 		ops->eee_set		= r8152_set_eee;
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0) */
 		ops->in_nway		= rtl8153_in_nway;
 		ops->hw_phy_cfg		= r8153c_hw_phy_cfg;
 		ops->autosuspend_en	= rtl8153c_runtime_enable;
@@ -20464,9 +19847,7 @@  static ssize_t sg_en_store(struct device *dev, struct device_attribute *attr,
 		return -EINVAL;
 	}
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
 	netif_set_gso_max_size(netdev, tso_size);
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) */
 
 	return count;
 }
@@ -20576,28 +19957,10 @@  static int rtl8152_probe(struct usb_interface *intf,
 	tasklet_setup(&tp->tx_tl, bottom_half);
 	tasklet_disable(&tp->tx_tl);
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,3)
 	if (usb_device_no_sg_constraint(udev))
 		tp->sg_use = true;
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,3) */
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)
-	netdev->open = rtl8152_open;
-	netdev->stop = rtl8152_close;
-	netdev->get_stats = rtl8152_get_stats;
-	netdev->hard_start_xmit = rtl8152_start_xmit;
-	netdev->tx_timeout = rtl8152_tx_timeout;
-	netdev->change_mtu = rtl8152_change_mtu;
-	netdev->set_mac_address = rtl8152_set_mac_address;
-	netdev->do_ioctl = rtl8152_ioctl;
-	netdev->set_multicast_list = rtl8152_set_rx_mode;
-	netdev->vlan_rx_register = rtl8152_vlan_rx_register;
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
-	netdev->vlan_rx_kill_vid = rtl8152_vlan_rx_kill_vid;
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22) */
-#else
+
 	netdev->netdev_ops = &rtl8152_netdev_ops;
-#endif /* HAVE_NET_DEVICE_OPS */
 
 	netdev->watchdog_timeo = RTL8152_TX_TIMEOUT;
 
@@ -20606,7 +19969,6 @@  static int rtl8152_probe(struct usb_interface *intf,
 			    NETIF_F_TSO6 | NETIF_F_HW_VLAN_CTAG_RX |
 			    NETIF_F_HW_VLAN_CTAG_TX;
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)
 	netdev->hw_features = NETIF_F_RXCSUM | NETIF_F_IP_CSUM | NETIF_F_SG |
 			      NETIF_F_TSO | NETIF_F_FRAGLIST |
 			      NETIF_F_IPV6_CSUM | NETIF_F_TSO6 |
@@ -20614,26 +19976,18 @@  static int rtl8152_probe(struct usb_interface *intf,
 	netdev->vlan_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO |
 				NETIF_F_HIGHDMA | NETIF_F_FRAGLIST |
 				NETIF_F_IPV6_CSUM | NETIF_F_TSO6;
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39) */
 
 	if (tp->version == RTL_VER_01) {
 		netdev->features &= ~NETIF_F_RXCSUM;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)
 		netdev->hw_features &= ~NETIF_F_RXCSUM;
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39) */
 	}
 
 	rtl_get_mapt_ver(tp);
 
 	netdev->ethtool_ops = &ops;
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
 	if (!tp->sg_use)
 		netif_set_gso_max_size(netdev, RTL_LIMITED_TSO_SIZE);
-#else
-	netdev->features &= ~(NETIF_F_TSO | NETIF_F_TSO6);
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) */
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)
 	/* MTU range: 68 - 1500 or 9194 */
 	netdev->min_mtu = ETH_MIN_MTU;
 	switch (tp->version) {
@@ -20662,7 +20016,6 @@  static int rtl8152_probe(struct usb_interface *intf,
 		netdev->max_mtu = ETH_DATA_LEN;
 		break;
 	}
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0) */
 
 	tp->mii.dev = netdev;
 	tp->mii.mdio_read = read_mii_word;
@@ -20710,17 +20063,9 @@  static int rtl8152_probe(struct usb_interface *intf,
 	 * commit b48b89f9c189d24eb5e2b4a0ac067da5a24ee86d
 	 */
 	if (tp->support_2500full)
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,1,0)
 		netif_napi_add_weight(netdev, &tp->napi, r8152_poll, 256);
-#else 
-		netif_napi_add(netdev, &tp->napi, r8152_poll, 256);
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(6,1,0) */
 	else
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,1,0)
 		netif_napi_add(netdev, &tp->napi, r8152_poll);
-#else 
-		netif_napi_add(netdev, &tp->napi, r8152_poll, 64);
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(6,1,0) */
 
 	ret = register_netdev(netdev);
 	if (ret != 0) {
@@ -20870,9 +20215,7 @@  static struct usb_driver rtl8152_driver = {
 	.pre_reset =	rtl8152_pre_reset,
 	.post_reset =	rtl8152_post_reset,
 	.supports_autosuspend = 1,
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)
 	.disable_hub_initiated_lpm = 1,
-#endif
 };
 
 module_usb_driver(rtl8152_driver);
diff --git a/drivers/net/usb/r8152_compatibility.h b/drivers/net/usb/r8152_compatibility.h
index 7738d17de7be..5f3eca6ee9ec 100644
--- a/drivers/net/usb/r8152_compatibility.h
+++ b/drivers/net/usb/r8152_compatibility.h
@@ -14,605 +14,8 @@ 
 #include <linux/reboot.h>
 #endif /* defined(RTL8152_S5_WOL) && defined(CONFIG_PM) */
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
-	#include <linux/mdio.h>
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)
-	#include <uapi/linux/mdio.h>
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0) */
-#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31) */
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5,15,0)
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5,12,0)
-	#define PHY_MAC_INTERRUPT		PHY_IGNORE_INTERRUPT
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5,9,0)
-	#ifdef CONFIG_PM
-	#define pm_ptr(_ptr) (_ptr)
-	#else
-	#define pm_ptr(_ptr) NULL
-	#endif
-
-	#define from_tasklet(var, callback_tasklet, tasklet_fieldname)	\
-		container_of((struct tasklet_struct *)callback_tasklet, typeof(*var), tasklet_fieldname)
-
-	#define tasklet_setup(t, fun)	tasklet_init(t, fun, (unsigned long)t)
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5,8,0)
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5,7,0)
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5,6,0)
-	/* Iterate through singly-linked GSO fragments of an skb. */
-	#define skb_list_walk_safe(first, skb, next_skb)                               \
-		for ((skb) = (first), (next_skb) = (skb) ? (skb)->next : NULL; (skb);  \
-		     (skb) = (next_skb), (next_skb) = (skb) ? (skb)->next : NULL)
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5,4,0)
-	#ifndef __has_attribute
-	# define __has_attribute(x)         0
-	#endif
-
-	#if __has_attribute(__fallthrough__)
-	# define fallthrough                    __attribute__((__fallthrough__))
-	#else
-	# define fallthrough                    do {} while (0)  /* fallthrough */
-	#endif
-
-	#define MDIO_EEE_2_5GT         0x0001  /* 2.5GT EEE cap */
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0)
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5,1,0)
-	#define MDIO_AN_10GBT_CTRL_ADV2_5G     0x0080  /* Advertise 2.5GBASE-T */
-	#define MDIO_AN_10GBT_STAT_LP2_5G      0x0020  /* LP is 2.5GBT capable */
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5,0,0)
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4,20,0)
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4,12,0)
-	#define SPEED_2500				2500
-	#define SPEED_25000				25000
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4,10,0)
-	#ifndef ETHTOOL_LINK_MODE_2500baseT_Full_BIT
-	#define ETHTOOL_LINK_MODE_2500baseT_Full_BIT	ETHTOOL_LINK_MODE_2500baseX_Full_BIT
-	#endif
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4,9,0)
-	#define BMCR_SPEED10				0x0000
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4,5,0)
-	#define NETIF_F_CSUM_MASK			NETIF_F_ALL_CSUM
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4,1,0)
-	#define IS_REACHABLE(option)			(defined(option) || \
-							 (defined(option##_MODULE) && defined(MODULE)))
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0)
-	#define skb_vlan_tag_present(__skb)		vlan_tx_tag_present(__skb)
-	#define skb_vlan_tag_get(__skb)			vlan_tx_tag_get(__skb)
-	#define skb_vlan_tag_get_id(__skb)		vlan_tx_tag_get_id(__skb)
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,19,0)
-	#define napi_alloc_skb(napi, length)		netdev_alloc_skb_ip_align(netdev,length)
-	#define napi_complete_done(n, d)		napi_complete(n)
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,16,0)
-	#ifndef smp_mb__before_atomic
-	#define smp_mb__before_atomic()			smp_mb()
-	#endif
-
-	#ifndef smp_mb__after_atomic
-	#define smp_mb__after_atomic()			smp_mb()
-	#endif
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,15,0)
-	#define IS_ERR_OR_NULL(ptr)			(!ptr)
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0)
-	#define ether_addr_copy(dst, src)		memcpy(dst, src, ETH_ALEN)
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,13,0)
-	#define BIT(nr)					(1UL << (nr))
-	#define BIT_ULL(nr)				(1ULL << (nr))
-	#define BITS_PER_BYTE				8
-	#define reinit_completion(x)			((x)->done = 0)
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,12,0)
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0)
-	#define DEVICE_ATTR_RW(_name) \
-		struct device_attribute dev_attr_##_name = __ATTR(_name, 0644, _name##_show, _name##_store)
-	#define DEVICE_ATTR_RO(_name) \
-		struct device_attribute dev_attr_##_name = __ATTR_RO(_name)
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
-	#define NETIF_F_HW_VLAN_CTAG_RX			NETIF_F_HW_VLAN_RX
-	#define NETIF_F_HW_VLAN_CTAG_TX			NETIF_F_HW_VLAN_TX
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,8,0)
-	#define USB_DEVICE_INTERFACE_CLASS(vend, prod, cl) \
-		.match_flags = USB_DEVICE_ID_MATCH_DEVICE | \
-			       USB_DEVICE_ID_MATCH_INT_CLASS, \
-		.idVendor = (vend), \
-		.idProduct = (prod), \
-		.bInterfaceClass = (cl)
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)
-	#ifndef SPEED_UNKNOWN
-		#define SPEED_UNKNOWN		0
-	#endif
-
-	#ifndef DUPLEX_UNKNOWN
-		#define DUPLEX_UNKNOWN		0xff
-	#endif
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,6,0)
-	#define eth_random_addr(addr)			random_ether_addr(addr)
-	#define usb_enable_lpm(udev)
-	#define MDIO_EEE_100TX				MDIO_AN_EEE_ADV_100TX	/* 100TX EEE cap */
-	#define MDIO_EEE_1000T				MDIO_AN_EEE_ADV_1000T	/* 1000T EEE cap */
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0)
-	#define ETH_MDIO_SUPPORTS_C22			MDIO_SUPPORTS_C22
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)
-	#define module_usb_driver(__driver) \
-	static int __init __driver##_init(void) \
-	{ \
-		return usb_register(&(__driver)); \
-	} \
-	module_init(__driver##_init); \
-	static void __exit __driver##_exit(void) \
-	{ \
-		usb_deregister(&(__driver)); \
-	} \
-	module_exit(__driver##_exit);
-
-	#define netdev_features_t			u32
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
-	#define PMSG_IS_AUTO(msg)	(((msg).event & PM_EVENT_AUTO) != 0)
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)
-	#define ndo_set_rx_mode				ndo_set_multicast_list
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39)
-	#define NETIF_F_RXCSUM				(1 << 29) /* Receive checksumming offload */
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38)
-	#define MDIO_AN_EEE_ADV				60	/* EEE advertisement */
-	#define MDIO_AN_EEE_ADV_100TX			0x0002	/* Advertise 100TX EEE cap */
-	#define MDIO_AN_EEE_ADV_1000T			0x0004	/* Advertise 1000T EEE cap */
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37)
-	#define skb_checksum_none_assert(skb_ptr)	(skb_ptr)->ip_summed = CHECKSUM_NONE
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36)
-	#define skb_tx_timestamp(skb)
-
-	#define queue_delayed_work(long_wq, work, delay)	schedule_delayed_work(work, delay)
-
-	#define work_busy(x)				0
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,34)
-	#define netdev_mc_count(netdev)			((netdev)->mc_count)
-	#define netdev_mc_empty(netdev)			(netdev_mc_count(netdev) == 0)
-
-	#define netif_printk(priv, type, level, netdev, fmt, args...)	\
-	do {								\
-		if (netif_msg_##type(priv))				\
-			printk(level "%s: " fmt,(netdev)->name , ##args); \
-	} while (0)
-
-	#define netif_emerg(priv, type, netdev, fmt, args...)		\
-		netif_printk(priv, type, KERN_EMERG, netdev, fmt, ##args)
-	#define netif_alert(priv, type, netdev, fmt, args...)		\
-		netif_printk(priv, type, KERN_ALERT, netdev, fmt, ##args)
-	#define netif_crit(priv, type, netdev, fmt, args...)		\
-		netif_printk(priv, type, KERN_CRIT, netdev, fmt, ##args)
-	#define netif_err(priv, type, netdev, fmt, args...)		\
-		netif_printk(priv, type, KERN_ERR, netdev, fmt, ##args)
-	#define netif_warn(priv, type, netdev, fmt, args...)		\
-		netif_printk(priv, type, KERN_WARNING, netdev, fmt, ##args)
-	#define netif_notice(priv, type, netdev, fmt, args...)		\
-		netif_printk(priv, type, KERN_NOTICE, netdev, fmt, ##args)
-	#define netif_info(priv, type, netdev, fmt, args...)		\
-		netif_printk(priv, type, KERN_INFO, (netdev), fmt, ##args)
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
-	#define get_sset_count				get_stats_count
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,32)
-	#define pm_request_resume(para)
-	#define pm_runtime_set_suspended(para)
-	#define pm_schedule_suspend(para1, para2)
-	#define pm_runtime_get_sync(para)
-	#define pm_runtime_put_sync(para)
-	#define pm_runtime_put_noidle(para)
-	#define pm_runtime_idle(para)
-	#define pm_runtime_set_active(para)
-	#define pm_runtime_enable(para)
-	#define pm_runtime_disable(para)
-	typedef int netdev_tx_t;
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
-	#define USB_SPEED_SUPER				(USB_SPEED_VARIABLE + 1)
-	#define MDIO_MMD_AN				7	/* Auto-Negotiation */
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)
-	#define napi_gro_receive(napi, skb)		netif_receive_skb(skb)
-	#define vlan_gro_receive(napi, grp, vlan_tci, skb) \
-		vlan_hwaccel_receive_skb(skb, grp, vlan_tci)
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)
-	#define PM_EVENT_AUTO		0x0400
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
-	struct napi_struct {
-		struct list_head	poll_list;
-		unsigned long		state;
-		int			weight;
-		int			(*poll)(struct napi_struct *, int);
-	#ifdef CONFIG_NETPOLL
-		spinlock_t		poll_lock;
-		int			poll_owner;
-		struct net_device	*dev;
-		struct list_head	dev_list;
-	#endif
-	};
-
-	#define napi_enable(napi_ptr)			netif_poll_enable(container_of(napi_ptr, struct r8152, napi)->netdev)
-	#define napi_disable(napi_ptr)			netif_poll_disable(container_of(napi_ptr, struct r8152, napi)->netdev)
-	#define napi_schedule(napi_ptr)			netif_rx_schedule(container_of(napi_ptr, struct r8152, napi)->netdev)
-	#define napi_complete(napi_ptr)			netif_rx_complete(container_of(napi_ptr, struct r8152, napi)->netdev)
-	#define netif_napi_add(ndev, napi_ptr, function, weight_t) \
-		ndev->poll = function; \
-		ndev->weight = weight_t;
-	typedef unsigned long				uintptr_t;
-	#define DMA_BIT_MASK(value) \
-		(value < 64 ? ((1ULL << value) - 1) : 0xFFFFFFFFFFFFFFFFULL)
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
-	#define NETIF_F_IPV6_CSUM			16
-	#define cancel_delayed_work_sync		cancel_delayed_work
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
-	#define ip_hdr(skb_ptr)				(skb_ptr)->nh.iph
-	#define ipv6hdr(skb_ptr)			(skb_ptr)->nh.ipv6h
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)
-	#define vlan_group_set_device(vlgrp, vid, value) \
-		if (vlgrp) \
-			(vlgrp)->vlan_devices[vid] = value;
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
-	#define delayed_work				work_struct
-	#define INIT_DELAYED_WORK(a,b)			INIT_WORK(a,b,tp)
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
-	#define CHECKSUM_PARTIAL			CHECKSUM_HW
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)
-	#define skb_is_gso(skb_ptr)			skb_shinfo(skb_ptr)->tso_size
-	#define netdev_alloc_skb(dev, len)		dev_alloc_skb(len)
-	#define IRQF_SHARED				SA_SHIRQ
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16)
-	#ifndef __LINUX_MUTEX_H
-	#define mutex					semaphore
-	#define mutex_lock				down
-	#define mutex_unlock				up
-	#define mutex_trylock				down_trylock
-	#define mutex_lock_interruptible		down_interruptible
-	#define mutex_init				init_MUTEX
-	#endif
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,14)
-	#define ADVERTISED_Pause			(1 << 13)
-	#define ADVERTISED_Asym_Pause			(1 << 14)
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,12)
-	#define skb_header_cloned(skb)			skb_cloned(skb)
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,12) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,14) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16) */
-	static inline struct sk_buff *skb_gso_segment(struct sk_buff *skb, int features)
-	{
-		return NULL;
-	}
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) */
-	static inline void *kmemdup(const void *src, size_t len, gfp_t gfp)
-	{
-		void *p;
-
-		p = kmalloc_track_caller(len, gfp);
-		if (p)
-			memcpy(p, src, len);
-		return p;
-	}
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21) */
-	static inline void skb_copy_from_linear_data(const struct sk_buff *skb,
-						     void *to,
-						     const unsigned int len)
-	{
-		memcpy(to, skb->data, len);
-	}
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22) */
-	static inline int skb_cow_head(struct sk_buff *skb, unsigned int headroom)
-	{
-		int delta = 0;
-
-		if (headroom > skb_headroom(skb))
-			delta = headroom - skb_headroom(skb);
-
-		if (delta || skb_header_cloned(skb))
-			return pskb_expand_head(skb, ALIGN(delta, NET_SKB_PAD),
-						0, GFP_ATOMIC);
-		return 0;
-	}
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) */
-	static inline void __list_splice2(const struct list_head *list,
-					  struct list_head *prev,
-					  struct list_head *next)
-	{
-		struct list_head *first = list->next;
-		struct list_head *last = list->prev;
-
-		first->prev = prev;
-		prev->next = first;
-
-		last->next = next;
-		next->prev = last;
-	}
-
-	static inline void list_splice_tail(struct list_head *list,
-					    struct list_head *head)
-	{
-		if (!list_empty(list))
-			__list_splice2(list, head->prev, head);
-	}
-
-	static inline void netif_napi_del(struct napi_struct *napi)
-	{
-	#ifdef CONFIG_NETPOLL
-	        list_del(&napi->dev_list);
-	#endif
-	}
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27) */
-	static inline void __skb_queue_splice(const struct sk_buff_head *list,
-					      struct sk_buff *prev,
-					      struct sk_buff *next)
-	{
-		struct sk_buff *first = list->next;
-		struct sk_buff *last = list->prev;
-
-		first->prev = prev;
-		prev->next = first;
-
-		last->next = next;
-		next->prev = last;
-	}
-
-	static inline void skb_queue_splice(const struct sk_buff_head *list,
-					    struct sk_buff_head *head)
-	{
-		if (!skb_queue_empty(list)) {
-			__skb_queue_splice(list, (struct sk_buff *) head, head->next);
-			head->qlen += list->qlen;
-		}
-	}
-
-	static inline void __skb_queue_head_init(struct sk_buff_head *list)
-	{
-		list->prev = list->next = (struct sk_buff *)list;
-		list->qlen = 0;
-	}
-
-	static inline void skb_queue_splice_init(struct sk_buff_head *list,
-						 struct sk_buff_head *head)
-	{
-		if (!skb_queue_empty(list)) {
-			__skb_queue_splice(list, (struct sk_buff *) head, head->next);
-			head->qlen += list->qlen;
-			__skb_queue_head_init(list);
-		}
-	}
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28) */
-	static inline void usb_autopm_put_interface_async(struct usb_interface *intf)
-	{
-		struct usb_device *udev = interface_to_usbdev(intf);
-		int status = 0;
-
-		if (intf->condition == USB_INTERFACE_UNBOUND) {
-			status = -ENODEV;
-		} else {
-			udev->last_busy = jiffies;
-			--intf->pm_usage_cnt;
-			if (udev->autosuspend_disabled || udev->autosuspend_delay < 0)
-				status = -EPERM;
-		}
-	}
-
-	static inline int usb_autopm_get_interface_async(struct usb_interface *intf)
-	{
-		struct usb_device *udev = interface_to_usbdev(intf);
-		int status = 0;
-
-		if (intf->condition == USB_INTERFACE_UNBOUND)
-			status = -ENODEV;
-		else if (udev->autoresume_disabled)
-			status = -EPERM;
-		else
-			++intf->pm_usage_cnt;
-		return status;
-	}
-
-	static inline int eth_change_mtu(struct net_device *dev, int new_mtu)
-	{
-		if (new_mtu < 68 || new_mtu > ETH_DATA_LEN)
-			return -EINVAL;
-		dev->mtu = new_mtu;
-		return 0;
-	}
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,32) */
-	static inline
-	struct sk_buff *netdev_alloc_skb_ip_align(struct net_device *dev,
-						  unsigned int length)
-	{
-		struct sk_buff *skb = netdev_alloc_skb(dev, length + NET_IP_ALIGN);
-
-		if (NET_IP_ALIGN && skb)
-			skb_reserve(skb, NET_IP_ALIGN);
-		return skb;
-	}
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33) */
-	static inline int usb_enable_autosuspend(struct usb_device *udev)
-	{ return 0; }
-	static inline int usb_disable_autosuspend(struct usb_device *udev)
-	{ return 0; }
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,34) */
-	static inline bool pci_dev_run_wake(struct pci_dev *dev)
-	{
-		return 1;
-	}
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35) */
-	static inline void usleep_range(unsigned long min, unsigned long max)
-	{
-		unsigned long ms = min / 1000;
-
-		if (ms)
-			mdelay(ms);
-
-		udelay(min % 1000);
-	}
-
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36) */
-	static inline __be16 vlan_get_protocol(const struct sk_buff *skb)
-	{
-	       __be16 protocol = 0;
-
-	       if (vlan_tx_tag_present(skb) ||
-	            skb->protocol != cpu_to_be16(ETH_P_8021Q))
-	               protocol = skb->protocol;
-	       else {
-	               __be16 proto, *protop;
-	               protop = skb_header_pointer(skb, offsetof(struct vlan_ethhdr,
-	                                               h_vlan_encapsulated_proto),
-	                                               sizeof(proto), &proto);
-	               if (likely(protop))
-	                       protocol = *protop;
-	       }
-
-	       return protocol;
-	}
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0) */
-	static inline struct page *skb_frag_page(const skb_frag_t *frag)
-	{
-		return frag->page;
-	}
-
-	static inline void *skb_frag_address(const skb_frag_t *frag)
-	{
-		return page_address(skb_frag_page(frag)) + frag->page_offset;
-	}
-
-	static inline unsigned int skb_frag_size(const skb_frag_t *frag)
-	{
-		return frag->size;
-	}
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0) */
-	static inline void eth_hw_addr_random(struct net_device *dev)
-	{
-		random_ether_addr(dev->dev_addr);
-	}
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,6,0) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0) */
-	static inline __sum16 tcp_v6_check(int len,
-					   const struct in6_addr *saddr,
-					   const struct in6_addr *daddr,
-					   __wsum base)
-	{
-		return csum_ipv6_magic(saddr, daddr, len, IPPROTO_TCP, base);
-	}
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,8,0) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,11,0) */
-	static inline bool usb_device_no_sg_constraint(struct usb_device *udev)
-	{
-		return 0;
-	}
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,12,0) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,13,0) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0) */
-	static inline int skb_to_sgvec_nomark(struct sk_buff *skb,
-					      struct scatterlist *sg,
-					      int offset, int len)
-	{
-		int nsg = skb_to_sgvec(skb, sg, offset, len);
-
-		if (nsg <= 0)
-			return nsg;
-
-		sg_unmark_end(&sg[nsg - 1]);
-
-		return nsg;
-	}
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,15,0) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,16,0) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,19,0) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4,1,0) */
-	static inline int eth_platform_get_mac_address(struct device *dev, u8 *mac_addr)
-	{
-		return -EOPNOTSUPP;
-	}
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4,5,0) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4,9,0) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4,10,0) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4,12,0) */
-#if LINUX_VERSION_CODE < KERNEL_VERSION(4,19,10) && \
-    !(LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,217) && LINUX_VERSION_CODE < KERNEL_VERSION(4,15,0))
-	static inline void skb_mark_not_on_list(struct sk_buff *skb)
-	{
-		skb->next = NULL;
-	}
-#endif
-	static inline void linkmode_set_bit(int nr, volatile unsigned long *addr)
-	{
-		__set_bit(nr, addr);
-	}
-
-	static inline void linkmode_clear_bit(int nr, volatile unsigned long *addr)
-	{
-		__clear_bit(nr, addr);
-	}
-
-	static inline int linkmode_test_bit(int nr, volatile unsigned long *addr)
-	{
-		return test_bit(nr, addr);
-	}
-
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4,20,0) */
-	static inline void linkmode_mod_bit(int nr, volatile unsigned long *addr,
-					    int set)
-	{
-		if (set)
-			linkmode_set_bit(nr, addr);
-		else
-			linkmode_clear_bit(nr, addr);
-	}
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,0,0) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,1,0) */
-//	static inline u16 pci_dev_id(struct pci_dev *dev)
-//	{
-//		return PCI_DEVID(dev->bus->number, dev->devfn);
-//	}
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,4,0) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,6,0) */
-	static inline void tcp_v6_gso_csum_prep(struct sk_buff *skb)
-	{
-		struct ipv6hdr *ipv6h = ipv6_hdr(skb);
-		struct tcphdr *th = tcp_hdr(skb);
-
-		ipv6h->payload_len = 0;
-		th->check = ~tcp_v6_check(0, &ipv6h->saddr, &ipv6h->daddr, 0);
-	}
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,7,0) */
-	static inline void fsleep(unsigned long usecs)
-	{
-		if (usecs <= 10)
-			udelay(usecs);
-		else if (usecs <= 20000)
-			usleep_range(usecs, 2 * usecs);
-		else
-			msleep(DIV_ROUND_UP(usecs, 1000));
-	}
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,8,0) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,9,0) */
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,12,0) */
-	static inline void eth_hw_addr_set(struct net_device *dev, const u8 *addr)
-	{
-		memcpy(dev->dev_addr, addr, 6);
-	}
-#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(5,15,0) */
+#include <linux/mdio.h>
+#include <uapi/linux/mdio.h>
 
 #ifndef FALSE
 	#define TRUE	1