[meta-arago][master][PATCH] cryptodev-module: Add patch to fix 6.18 build issue

Ryan Eatmon <[email protected]>
Newsgroups org.yoctoproject.lists.meta-arago
Message-ID <[email protected]>
Backport a patch [1] to address a 6.18 kernel compile issue.

[1] https://github.com/cryptodev-linux/cryptodev-linux/commit/08644db02d43478f802755903212f5ee506af73b

Signed-off-by: Ryan Eatmon <[email protected]>
---
 .../cryptodev/cryptodev-module-arago.inc      |  4 ++
 .../0001-Fix-build-for-Linux-6-18-rc1.patch   | 53 +++++++++++++++++++
 2 files changed, 57 insertions(+)
 create mode 100644 meta-arago-distro/recipes-kernel/cryptodev/cryptodev-module/0001-Fix-build-for-Linux-6-18-rc1.patch

diff --git a/meta-arago-distro/recipes-kernel/cryptodev/cryptodev-module-arago.inc b/meta-arago-distro/recipes-kernel/cryptodev/cryptodev-module-arago.inc
index 74688f1c..9bd89679 100644
--- a/meta-arago-distro/recipes-kernel/cryptodev/cryptodev-module-arago.inc
+++ b/meta-arago-distro/recipes-kernel/cryptodev/cryptodev-module-arago.inc
@@ -1,3 +1,7 @@
 PR:append = ".arago0"
 
 KERNEL_MODULE_AUTOLOAD += "cryptodev"
+
+FILESEXTRAPATHS:prepend := "${THISDIR}/cryptodev-module:"
+
+SRC_URI += "file://0001-Fix-build-for-Linux-6-18-rc1.patch"
diff --git a/meta-arago-distro/recipes-kernel/cryptodev/cryptodev-module/0001-Fix-build-for-Linux-6-18-rc1.patch b/meta-arago-distro/recipes-kernel/cryptodev/cryptodev-module/0001-Fix-build-for-Linux-6-18-rc1.patch
new file mode 100644
index 00000000..d7f1d05c
--- /dev/null
+++ b/meta-arago-distro/recipes-kernel/cryptodev/cryptodev-module/0001-Fix-build-for-Linux-6-18-rc1.patch
@@ -0,0 +1,53 @@
+From 08644db02d43478f802755903212f5ee506af73b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Joan=20Bruguera=20Mic=C3=B3?= <[email protected]>
+Date: Sat, 6 Sep 2025 20:36:38 +0000
+Subject: [PATCH] Fix build for Linux 6.18-rc1
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+It's no longer required to use nth_page() when iterating pages within a
+single scatterlist entry.
+
+Note I believe this code path in `sg_advance` is currently unreachable:
+It is only called from `get_userbuf_srtp`, passing in a scatterlist
+copied from one created by `__get_userbuf`, which only generates
+entries such that `sg->offset + sg->length <= PAGE_SIZE`.
+On the other hand, this code path in `sg_advance` requires that
+`sg->offset + sg->length > sg->offset + consumed >= PAGE_SIZE`.
+
+See also: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f8f03eb5f0f91fddc9bb8563c7e82bd7d3ba1dd0
+          https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ce00897b94bc5c62fab962625efcf1ab824d3688
+
+Upstream-Status: Backport [https://github.com/cryptodev-linux/cryptodev-linux/commit/08644db02d43478f802755903212f5ee506af73b]
+
+Signed-off-by: Joan Bruguera Micó <[email protected]>
+---
+ util.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/util.c b/util.c
+index 9eba4836..d4267816 100644
+--- a/util.c
++++ b/util.c
+@@ -21,6 +21,7 @@
+ 
+ #include <crypto/scatterwalk.h>
+ #include <linux/scatterlist.h>
++#include <linux/version.h>
+ #include "util.h"
+ 
+ /* These were taken from Maxim Levitsky's patch to lkml.
+@@ -44,8 +45,12 @@ struct scatterlist *sg_advance(struct scatterlist *sg, int consumed)
+ 	sg->length -= consumed;
+ 
+ 	if (sg->offset >= PAGE_SIZE) {
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 18, 0))
++		struct page *page = sg_page(sg) + (sg->offset / PAGE_SIZE);
++#else
+ 		struct page *page =
+ 			nth_page(sg_page(sg), sg->offset / PAGE_SIZE);
++#endif
+ 		sg_set_page(sg, page, sg->length, sg->offset % PAGE_SIZE);
+ 	}
+ 
-- 
2.43.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.