dpdk/19.11: upgrade 19.11.5 -> 19.11.9

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
This commit is contained in:
Anuj Mittal 2021-08-27 23:39:00 +08:00
parent 84709a1281
commit 6c1b9b6cfe
4 changed files with 2 additions and 169 deletions

View File

@ -1,54 +0,0 @@
From 7e0102a6d29732b92c25ca4793d641ce6c98e95a Mon Sep 17 00:00:00 2001
From: He Zhe <zhe.he@windriver.com>
Date: Wed, 23 Sep 2020 11:00:03 +0800
Subject: [PATCH] Starting from Linux 5.9 'get_user_pages_remote()' API doesn't
get 'struct task_struct' parameter: commit 64019a2e467a ("mm/gup: remove
task_struct pointer for all gup code")
The change reflected to the KNI with version check.
Cc: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Upstream-Status: Backport [https://patches.dpdk.org/patch/75577/]
Signed-off-by: He Zhe <zhe.he@windriver.com>
---
kernel/linux/kni/compat.h | 4 ++++
kernel/linux/kni/kni_dev.h | 5 +++++
2 files changed, 9 insertions(+)
diff --git a/kernel/linux/kni/compat.h b/kernel/linux/kni/compat.h
index 9ee45dbf6..d515b2766 100644
--- a/kernel/linux/kni/compat.h
+++ b/kernel/linux/kni/compat.h
@@ -134,3 +134,7 @@
#if KERNEL_VERSION(5, 6, 0) <= LINUX_VERSION_CODE
#define HAVE_TX_TIMEOUT_TXQUEUE
#endif
+
+#if KERNEL_VERSION(5, 9, 0) > LINUX_VERSION_CODE
+#define HAVE_TSK_IN_GUP
+#endif
diff --git a/kernel/linux/kni/kni_dev.h b/kernel/linux/kni/kni_dev.h
index ca5f92a47..c15da311b 100644
--- a/kernel/linux/kni/kni_dev.h
+++ b/kernel/linux/kni/kni_dev.h
@@ -101,8 +101,13 @@ static inline phys_addr_t iova_to_phys(struct task_struct *tsk,
offset = iova & (PAGE_SIZE - 1);
/* Read one page struct info */
+#ifdef HAVE_TSK_IN_GUP
ret = get_user_pages_remote(tsk, tsk->mm, iova, 1,
FOLL_TOUCH, &page, NULL, NULL);
+#else
+ ret = get_user_pages_remote(tsk->mm, iova, 1,
+ FOLL_TOUCH, &page, NULL, NULL);
+#endif
if (ret < 0)
return 0;
--
2.17.1

View File

@ -1,56 +0,0 @@
From 33c12ac5ba5f09727c6de807e71403dd260a7bbc Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@intel.com>
Date: Mon, 17 May 2021 16:57:39 +0100
Subject: [PATCH] test/table: fix build with GCC 11
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Build error:
../app/test/test_table_tables.c: In function test_table_stub:
../app/test/test_table_tables.c:31:9:
warning: memset offset [0, 31] is out of the bounds [0, 0]
[-Warray-bounds]
memset((uint8_t *)mbuf + sizeof(struct rte_mbuf) + 32, 0, 32); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../app/test/test_table_tables.c:151:25:
note: in expansion of macro PREPARE_PACKET
151 | PREPARE_PACKET(mbufs[i], 0xadadadad);
| ^~~~~~~~~~~~~~
'key' points to mbuf header + 32 bytes, and memset clears next 32 bytes
of 'key', so overall there needs to be 64 bytes after mbuf header.
Adding a mbuf size check before memset.
The original code has an assumption that mbuf data buffer follows mbuf
header, this patch accepts same assumption.
Bugzilla ID: 677
Fixes: 5205954791cb ("app/test: packet framework unit tests")
Cc: stable@dpdk.org
Upstream-Status: Backport [https://github.com/DPDK/dpdk/commit/33c12ac5ba5f09727c6de807e71403dd260a7bbc]
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
app/test/test_table_tables.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/app/test/test_table_tables.c b/app/test/test_table_tables.c
index 1aa269f95..4ff6ab16a 100644
--- a/app/test/test_table_tables.c
+++ b/app/test/test_table_tables.c
@@ -28,7 +28,8 @@ table_test table_tests[] = {
APP_METADATA_OFFSET(0)); \
key = RTE_MBUF_METADATA_UINT8_PTR(mbuf, \
APP_METADATA_OFFSET(32)); \
- memset(key, 0, 32); \
+ if (mbuf->priv_size + mbuf->buf_len >= 64) \
+ memset(key, 0, 32); \
k32 = (uint32_t *) key; \
k32[0] = (value); \
*signature = pipeline_test_hash(key, NULL, 0, 0); \
--
2.17.1

View File

@ -1,54 +0,0 @@
From b2a1d7a4661dc78a4c070de5542bf2c201762cb2 Mon Sep 17 00:00:00 2001
From: Yongxin Liu <yongxin.liu@windriver.com>
Date: Mon, 23 Nov 2020 11:02:52 +0800
Subject: [PATCH] usertools/devbind: fix binding for built-in kernel drivers
A driver can be loaded as a dynamic module or a built-in module.
In commit 681a67288655 ("usertools: check if module is loaded
before binding"), script only checks modules in /sys/module/.
However, for built-in kernel driver, it only shows up in /sys/module/,
if it has a version or at least one parameter. So add check for
modules in /lib/modules/$(uname -r)/modules.builtin.
Upstream-Status: Submitted [https://patches.dpdk.org/patch/84454]
Signed-off-by: Yongxin Liu <yongxin.liu@windriver.com>
---
usertools/dpdk-devbind.py | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/usertools/dpdk-devbind.py b/usertools/dpdk-devbind.py
index b1d149876..89a0ab1c9 100755
--- a/usertools/dpdk-devbind.py
+++ b/usertools/dpdk-devbind.py
@@ -8,6 +8,7 @@
import os
import getopt
import subprocess
+import platform
from os.path import exists, abspath, dirname, basename
# The PCI base class for all devices
@@ -172,7 +173,17 @@ def module_is_loaded(module):
loaded_modules = sysfs_mods
- return module in sysfs_mods
+ # add built-in modules as loaded
+ release = platform.uname().release
+ filename = os.path.join("/lib/modules/", release, "modules.builtin")
+ if os.path.exists(filename):
+ try:
+ with open(filename) as f:
+ loaded_modules += [os.path.splitext(os.path.basename(mod))[0] for mod in f]
+ except IOError:
+ print("Warning: cannot read list of built-in kernel modules")
+
+ return module in loaded_modules
def check_modules():
--
2.14.4

View File

@ -3,14 +3,11 @@ include dpdk.inc
SRC_URI += " \
file://dpdk-16.04-add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch \
file://dpdk-16.07-add-sysroot-option-within-app-makefile.patch \
file://0001-Starting-from-Linux-5.9-get_user_pages_remote-API-do.patch \
file://usertools-devbind-fix-binding-for-built-in-kernel-dr.patch \
file://0001-test-table-fix-build-with-GCC-11.patch"
"
STABLE = "-stable"
BRANCH = "19.11"
SRCREV = "1d28832feb881d4512993791d30d695cc9c7160b"
SRCREV = "a3d97ddaead03cb19b5160bc78e724659795aea7"
S = "${WORKDIR}/git"
COMPATIBLE_MACHINE = "null"