SHA256
1
0
forked from pool/dpdk
Dominique Leuenberger 2024-07-28 15:19:03 +00:00 committed by Git OBS Bridge
commit 9a2a3b3bf1
4 changed files with 106 additions and 4 deletions

View File

@ -1,3 +1,15 @@
-------------------------------------------------------------------
Wed Jul 24 06:25:38 UTC 2024 - Jiri Slaby <jslaby@suse.cz>
- use %autopatch even for older distros, -M *is* supported there
-------------------------------------------------------------------
Tue Jul 16 08:47:23 UTC 2024 - Jiri Slaby <jslaby@suse.cz>
- add kni-fix-build-with-Linux-6.10.patch to fix build against
kernel 6.8.
- update kni-fix-build-with-Linux-6.8.patch -- it is upstream now.
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Jul 4 20:27:14 UTC 2024 - Bernhard Wiedemann <bwiedemann@suse.com> Thu Jul 4 20:27:14 UTC 2024 - Bernhard Wiedemann <bwiedemann@suse.com>

View File

@ -60,6 +60,7 @@ Patch1: 0002-SLE15-SP3-compatibility-patch-for-kni.patch
Patch2: 0001-kni-fix-build-with-Linux-6.3.patch Patch2: 0001-kni-fix-build-with-Linux-6.3.patch
Patch3: 0001-kni-fix-build-with-Linux-6.5.patch Patch3: 0001-kni-fix-build-with-Linux-6.5.patch
Patch4: kni-fix-build-with-Linux-6.8.patch Patch4: kni-fix-build-with-Linux-6.8.patch
Patch100: kni-fix-build-with-Linux-6.10.patch
BuildRequires: binutils BuildRequires: binutils
BuildRequires: doxygen BuildRequires: doxygen
BuildRequires: fdupes BuildRequires: fdupes
@ -178,7 +179,13 @@ The DPDK Kernel NIC Interface (KNI) allows userspace applications access to the
%prep %prep
# can't use %%{name} because of dpdk-thunderx # can't use %%{name} because of dpdk-thunderx
%autosetup -p1 -n dpdk-stable-%{version} %setup -n dpdk-stable-%{version}
%if 0%{?suse_version} > 1600
%autopatch -p1
%else
# grr, no fs.copyfile() in the old meson in SLE (but it has old enough kernel).
%autopatch -p1 -M 99
%endif
# Skip not supported examples # Skip not supported examples
sed -i "/performance-thread/d" examples/meson.build sed -i "/performance-thread/d" examples/meson.build

View File

@ -0,0 +1,68 @@
From: Jiri Slaby <jslaby@suse.cz>
Date: Tue, 16 Jul 2024 10:40:26 +0200
Subject: kni: fix build with Linux 6.10
Patch-mainline: submitted to dev@dpdk.org, <20240716084414.115852-1-jslaby@suse.cz>
References: kernel 6.10
6.10 removed the "support" (it was never supported [1]) of separate
source and build dirs for out of tree modules.
KNI uses "src=" hack for that purpose.
Instead, copy sources to the build dir and don't rely upon the
unsupported...
Intended esp. for stable/22.11. It should go wherever kni is still in
the tree.
[1] https://lore.kernel.org/all/CAK7LNAQ47bZpE6c6Yoz-jQS78uU611oZwU8bH+7e=p5zSyADJw@mail.gmail.com/
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
kernel/linux/kni/meson.build | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/kernel/linux/kni/meson.build b/kernel/linux/kni/meson.build
index 4c90069e..39ca2ade 100644
--- a/kernel/linux/kni/meson.build
+++ b/kernel/linux/kni/meson.build
@@ -11,8 +11,8 @@ if run_cmd.stdout().contains('txqueue') == true
kmod_cflags = '-DHAVE_ARG_TX_QUEUE'
endif
-
-kni_mkfile = custom_target('rte_kni_makefile',
+kni_deps = []
+kni_deps += custom_target('rte_kni_makefile',
output: 'Makefile',
command: ['touch', '@OUTPUT@'])
@@ -22,12 +22,15 @@ kni_sources = files(
'Kbuild',
)
+foreach file : kni_sources
+ kni_deps += fs.copyfile(file)
+endforeach
+
custom_target('rte_kni',
input: kni_sources,
output: 'rte_kni.ko',
command: ['make', '-j4', '-C', kernel_build_dir,
'M=' + meson.current_build_dir(),
- 'src=' + meson.current_source_dir(),
' '.join(['MODULE_CFLAGS=', kmod_cflags,'-include '])
+ dpdk_source_root + '/config/rte_config.h' +
' -I' + dpdk_source_root + '/lib/eal/include' +
@@ -35,7 +38,7 @@ custom_target('rte_kni',
' -I' + dpdk_build_root +
' -I' + meson.current_source_dir(),
'modules'] + cross_args,
- depends: kni_mkfile,
+ depends: kni_deps,
install: install,
install_dir: kernel_install_dir,
build_by_default: get_option('enable_kmods'))
--
2.45.2

View File

@ -1,6 +1,12 @@
From: Jiri Slaby <jslaby@suse.cz> From: Jiri Slaby <jslaby@suse.cz>
Date: Tue, 12 Mar 2024 09:49:14 +0100
Subject: kni: fix build with Linux 6.8 Subject: kni: fix build with Linux 6.8
Patch-mainline: submitted to dev@dpdk.org, <20240312084914.92056-1-jslaby@suse.cz> MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Git-repo: git://dpdk.org/dpdk-stable
Git-commit: 15658afda05f50e69805b891ebb4d2d5c1966d44
Patch-mainline: yes
References: kernel 6.8 References: kernel 6.8
strlcpy() was removed in commit d26270061ae6 (string: Remove strlcpy()), use strlcpy() was removed in commit d26270061ae6 (string: Remove strlcpy()), use
@ -10,14 +16,20 @@ The patches fixes this:
kernel/linux/kni/kni_net.c: In function kni_get_drvinfo: kernel/linux/kni/kni_net.c: In function kni_get_drvinfo:
kernel/linux/kni/kni_net.c:835:9: error: implicit declaration of function strlcpy; did you mean strscpy? kernel/linux/kni/kni_net.c:835:9: error: implicit declaration of function strlcpy; did you mean strscpy?
Intended esp. for stable/22.11. It should go wherever kni is still in
the tree.
Signed-off-by: Jiri Slaby <jslaby@suse.cz> Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Acked-by: Luca Boccassi <bluca@debian.org>
--- ---
kernel/linux/kni/kni_net.c | 4 ++-- kernel/linux/kni/kni_net.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-) 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/linux/kni/kni_net.c b/kernel/linux/kni/kni_net.c
index 779ee345..c115a728 100644
--- a/kernel/linux/kni/kni_net.c --- a/kernel/linux/kni/kni_net.c
+++ b/kernel/linux/kni/kni_net.c +++ b/kernel/linux/kni/kni_net.c
@@ -832,8 +832,8 @@ static const struct net_device_ops kni_n @@ -832,8 +832,8 @@ static const struct net_device_ops kni_net_netdev_ops = {
static void kni_get_drvinfo(struct net_device *dev, static void kni_get_drvinfo(struct net_device *dev,
struct ethtool_drvinfo *info) struct ethtool_drvinfo *info)
{ {
@ -28,3 +40,6 @@ Signed-off-by: Jiri Slaby <jslaby@suse.cz>
} }
static const struct ethtool_ops kni_net_ethtool_ops = { static const struct ethtool_ops kni_net_ethtool_ops = {
--
2.45.2