package/cryptodev-linux: Fix build for Linux 6.18
Buildroot commit a06d79862a bumped the
linux kernel to version 6.18 which broke the build of cryptodev-linux.
Added upstream patch to fix the problem.
Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
committed by
Peter Korsgaard
parent
8745e0d5ca
commit
6086429850
@@ -0,0 +1,55 @@
|
||||
From 08644db02d43478f802755903212f5ee506af73b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Joan=20Bruguera=20Mic=C3=B3?= <joanbrugueram@gmail.com>
|
||||
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
|
||||
|
||||
Signed-off-by: Joan Bruguera Micó <joanbrugueram@gmail.com>
|
||||
|
||||
Upstream: https://github.com/cryptodev-linux/cryptodev-linux/commit/08644db02d43478f802755903212f5ee506af73b
|
||||
|
||||
Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
|
||||
---
|
||||
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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user