]> git.pld-linux.org Git - packages/r8168.git/commitdiff
- fix building with kernel 6.9 master
authorJan Rękorajski <baggins@pld-linux.org>
Mon, 27 May 2024 22:08:25 +0000 (00:08 +0200)
committerJan Rękorajski <baggins@pld-linux.org>
Mon, 27 May 2024 22:08:25 +0000 (00:08 +0200)
https://github.com/mtorromeo/r8168/pull/60/commits/94426e16197c244d03aad0434e3490acdaa830fe

kernel-6.9.patch [new file with mode: 0644]
r8168.spec

diff --git a/kernel-6.9.patch b/kernel-6.9.patch
new file mode 100644 (file)
index 0000000..526805c
--- /dev/null
@@ -0,0 +1,119 @@
+From 94426e16197c244d03aad0434e3490acdaa830fe Mon Sep 17 00:00:00 2001
+From: Masato TOYOSHIMA <phoepsilonix@phoepsilonix.love>
+Date: Tue, 14 May 2024 14:52:58 +0900
+Subject: [PATCH] Linux 6.9 compat: change to ethtool_keee from ethtool_eee
+
+linux/include/linux/ethtool.h
+
+struct ethtool_ops
+    int (*get_eee)(struct net_device *dev, struct ethtool_keee *eee);
+    int (*set_eee)(struct net_device *dev, struct ethtool_keee *eee);
+
+change to ethtool_keee from ethtool_eee
+    rtl_ethtool_get_eee(struct net_device *net, struct ethtool_keee *edata)
+    rtl_ethtool_set_eee(struct net_device *net, struct ethtool_keee *edata)
+---
+ src/r8168_n.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 44 insertions(+)
+
+diff --git a/src/r8168_n.c b/src/r8168_n.c
+index ad63f42..3d67641 100755
+--- a/src/r8168_n.c
++++ b/src/r8168_n.c
+@@ -7941,7 +7941,11 @@ rtl8168_device_lpi_t_to_ethtool_lpi_t(struct rtl8168_private *tp , u32 lpi_timer
+ }
+ static int
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,9,0)
++rtl_ethtool_get_eee(struct net_device *net, struct ethtool_keee *edata)
++#else
+ rtl_ethtool_get_eee(struct net_device *net, struct ethtool_eee *edata)
++#endif
+ {
+         struct rtl8168_private *tp = netdev_priv(net);
+         struct ethtool_eee *eee = &tp->eee;
+@@ -7975,9 +7979,15 @@ rtl_ethtool_get_eee(struct net_device *net, struct ethtool_eee *edata)
+         edata->eee_enabled = !!val;
+         edata->eee_active = !!(supported & adv & lp);
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,9,0)
++        ethtool_convert_legacy_u32_to_link_mode(edata->supported, supported);
++        ethtool_convert_legacy_u32_to_link_mode(edata->advertised, adv);
++        ethtool_convert_legacy_u32_to_link_mode(edata->lp_advertised, lp);
++#else
+         edata->supported = supported;
+         edata->advertised = adv;
+         edata->lp_advertised = lp;
++#endif
+         edata->tx_lpi_enabled = edata->eee_enabled;
+         edata->tx_lpi_timer = tx_lpi_timer;
+@@ -7985,11 +7995,19 @@ rtl_ethtool_get_eee(struct net_device *net, struct ethtool_eee *edata)
+ }
+ static int
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,9,0)
++rtl_ethtool_set_eee(struct net_device *net, struct ethtool_keee *edata)
++#else
+ rtl_ethtool_set_eee(struct net_device *net, struct ethtool_eee *edata)
++#endif
+ {
+         struct rtl8168_private *tp = netdev_priv(net);
+         struct ethtool_eee *eee = &tp->eee;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,9,0)
++        u32 advertising, adv;
++#else
+         u32 advertising;
++#endif
+         int rc = 0;
+         if (!rtl8168_support_eee(tp))
+@@ -8013,6 +8031,18 @@ rtl_ethtool_set_eee(struct net_device *net, struct ethtool_eee *edata)
+         }
+         advertising = tp->advertising;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,9,0)
++        ethtool_convert_link_mode_to_legacy_u32(&adv, edata->advertised);
++        if (linkmode_empty(edata->advertised)) {
++                adv = advertising & eee->supported;
++                ethtool_convert_legacy_u32_to_link_mode(edata->advertised, adv);
++        } else if (!linkmode_empty(edata->advertised) & ~advertising) {
++                dev_printk(KERN_WARNING, tp_to_dev(tp), "EEE advertised %x must be a subset of autoneg advertised speeds %x\n",
++                           adv, advertising);
++                rc = -EINVAL;
++                goto out;
++        }
++#else
+         if (!edata->advertised) {
+                 edata->advertised = advertising & eee->supported;
+         } else if (edata->advertised & ~advertising) {
+@@ -8021,15 +8051,29 @@ rtl_ethtool_set_eee(struct net_device *net, struct ethtool_eee *edata)
+                 rc = -EINVAL;
+                 goto out;
+         }
++#endif
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,9,0)
++        if (!linkmode_empty(edata->advertised) & ~eee->supported) {
++                dev_printk(KERN_WARNING, tp_to_dev(tp), "EEE advertised %x must be a subset of support %x\n",
++                           adv, eee->supported);
++                rc = -EINVAL;
++                goto out;
++        }
++#else
+         if (edata->advertised & ~eee->supported) {
+                 dev_printk(KERN_WARNING, tp_to_dev(tp), "EEE advertised %x must be a subset of support %x\n",
+                            edata->advertised, eee->supported);
+                 rc = -EINVAL;
+                 goto out;
+         }
++#endif
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,9,0)
++        ethtool_convert_link_mode_to_legacy_u32(&eee->advertised, edata->advertised);
++#else
+         eee->advertised = edata->advertised;
++#endif
+         eee->eee_enabled = edata->eee_enabled;
+         if (eee->eee_enabled)
index 3509cd3f9162d8263b6277be40cdc69b2ed87e24..6816c016e5800cad3737270beaf6353bc85e5dd3 100644 (file)
@@ -4,7 +4,7 @@
 # nothing to be placed to debuginfo package
 %define                _enable_debug_packages  0
 
-%define                rel     0.1
+%define                rel     1
 %define                pname   r8168
 Summary:       Linux driver for RTL8111/8168B PCI Express Gigabit Ethernet controllers
 Summary(pl.UTF-8):     Linuksowy sterownik dla kart sieciowych RTL8111/8168B PCI Express Gigabit Ethernet
@@ -19,6 +19,7 @@ URL:          http://www.realtek.com.tw/
 # unfortunately this download is not DF-friendly.
 Source0:       %{pname}-%{version}.tar.bz2
 # Source0-md5: 6323d3ed1b01bf2e78b4a235c6eae4db
+Patch0:                kernel-6.9.patch
 BuildRequires: rpmbuild(macros) >= 1.701
 %{expand:%buildrequires_kernel kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2}
 BuildRoot:     %{tmpdir}/%{pname}-%{version}-root-%(id -u -n)
@@ -70,6 +71,7 @@ Express Gigabit Ethernet.\
 
 %prep
 %setup -q -n %{pname}-%{version}
+%patch0 -p1
 
 %build
 %{expand:%build_kernel_packages}
This page took 0.166215 seconds and 4 git commands to generate.