summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHolger Hoffstätte <holger@applied-asynchrony.com>2022-07-17 23:52:01 +0200
committerSam James <sam@gentoo.org>2022-07-18 00:26:11 +0000
commit0f787176dd1ee17c16d1ac03bd24c78771ab2477 (patch)
tree1f1a2ff50f2145551fde0fe91f9a094dae78e650 /dev-util/sysdig-kmod
parentnet-misc/miniupnpd: keyword 2.3.0-r1 for ~arm64 (diff)
downloadgentoo-0f787176dd1ee17c16d1ac03bd24c78771ab2477.tar.gz
gentoo-0f787176dd1ee17c16d1ac03bd24c78771ab2477.tar.bz2
gentoo-0f787176dd1ee17c16d1ac03bd24c78771ab2477.zip
dev-util/sysdig-kmod: fix kmod build on kernels >= 5.18
Bug: https://bugs.gentoo.org/852314 Signed-off-by: Holger Hoffstätte <holger@applied-asynchrony.com> Closes: https://github.com/gentoo/gentoo/pull/26458 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-util/sysdig-kmod')
-rw-r--r--dev-util/sysdig-kmod/files/0.27.1-fix-kmod-build-on-5.18+.patch63
-rw-r--r--dev-util/sysdig-kmod/sysdig-kmod-0.27.1.ebuild2
2 files changed, 65 insertions, 0 deletions
diff --git a/dev-util/sysdig-kmod/files/0.27.1-fix-kmod-build-on-5.18+.patch b/dev-util/sysdig-kmod/files/0.27.1-fix-kmod-build-on-5.18+.patch
new file mode 100644
index 000000000000..8c3ade53fb07
--- /dev/null
+++ b/dev-util/sysdig-kmod/files/0.27.1-fix-kmod-build-on-5.18+.patch
@@ -0,0 +1,63 @@
+
+Bug: https://bugs.gentoo.org/852314
+Source: https://github.com/falcosecurity/libs/pull/411/commits/36e945af4feb31c8b875f7d4624592b0c1ff929d
+
+From 36e945af4feb31c8b875f7d4624592b0c1ff929d Mon Sep 17 00:00:00 2001
+From: Federico Di Pierro <nierro92@gmail.com>
+Date: Mon, 20 Jun 2022 14:26:39 +0200
+Subject: [PATCH] fix(driver): fixed kmod build on linux kernels >= 5.18.
+
+Signed-off-by: Federico Di Pierro <nierro92@gmail.com>
+---
+ driver/main.c | 14 +++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/driver/main.c b/driver/main.c
+index 6b5ae461a..e606cc2f8 100644
+--- a/driver/main.c
++++ b/driver/main.c
+@@ -70,8 +70,9 @@ MODULE_AUTHOR("the Falco authors");
+ #define TRACEPOINT_PROBE(probe, args...) static void probe(void *__data, args)
+ #endif
+
+-#ifndef pgprot_encrypted
+-#define pgprot_encrypted(x) (x)
++// Allow build even on arch where PAGE_ENC is not implemented
++#ifndef _PAGE_ENC
++#define _PAGE_ENC 0
+ #endif
+
+ struct ppm_device {
+@@ -1217,8 +1218,9 @@ static int ppm_mmap(struct file *filp, struct vm_area_struct *vma)
+
+ pfn = vmalloc_to_pfn(vmalloc_area_ptr);
+
++ pgprot_val(vma->vm_page_prot) = pgprot_val(PAGE_SHARED) | _PAGE_ENC;
+ ret = remap_pfn_range(vma, useraddr, pfn,
+- PAGE_SIZE, pgprot_encrypted(PAGE_SHARED));
++ PAGE_SIZE, vma->vm_page_prot);
+ if (ret < 0) {
+ pr_err("remap_pfn_range failed (1)\n");
+ goto cleanup_mmap;
+@@ -1255,8 +1257,9 @@ static int ppm_mmap(struct file *filp, struct vm_area_struct *vma)
+ while (mlength > 0) {
+ pfn = vmalloc_to_pfn(vmalloc_area_ptr);
+
++ pgprot_val(vma->vm_page_prot) = pgprot_val(PAGE_SHARED) | _PAGE_ENC;
+ ret = remap_pfn_range(vma, useraddr, pfn,
+- PAGE_SIZE, pgprot_encrypted(PAGE_SHARED));
++ PAGE_SIZE, vma->vm_page_prot);
+ if (ret < 0) {
+ pr_err("remap_pfn_range failed (1)\n");
+ goto cleanup_mmap;
+@@ -1277,8 +1280,9 @@ static int ppm_mmap(struct file *filp, struct vm_area_struct *vma)
+ while (mlength > 0) {
+ pfn = vmalloc_to_pfn(vmalloc_area_ptr);
+
++ pgprot_val(vma->vm_page_prot) = pgprot_val(PAGE_SHARED) | _PAGE_ENC;
+ ret = remap_pfn_range(vma, useraddr, pfn,
+- PAGE_SIZE, pgprot_encrypted(PAGE_SHARED));
++ PAGE_SIZE, vma->vm_page_prot);
+ if (ret < 0) {
+ pr_err("remap_pfn_range failed (1)\n");
+ goto cleanup_mmap;
diff --git a/dev-util/sysdig-kmod/sysdig-kmod-0.27.1.ebuild b/dev-util/sysdig-kmod/sysdig-kmod-0.27.1.ebuild
index ba7201399d5c..b679552f204c 100644
--- a/dev-util/sysdig-kmod/sysdig-kmod-0.27.1.ebuild
+++ b/dev-util/sysdig-kmod/sysdig-kmod-0.27.1.ebuild
@@ -19,6 +19,8 @@ RDEPEND="!<=dev-util/sysdig-0.26.4[modules]"
CONFIG_CHECK="HAVE_SYSCALL_TRACEPOINTS ~TRACEPOINTS"
+PATCHES=( "${FILESDIR}"/${PV}-fix-kmod-build-on-5.18+.patch )
+
pkg_pretend() {
linux-mod_pkg_setup
}