1 |
commit: 06cfe6d9491093d9c32db7ac180a1020b6b6fbf4 |
2 |
Author: Holger Hoffstätte <holger <AT> applied-asynchrony <DOT> com> |
3 |
AuthorDate: Tue Aug 23 17:20:58 2022 +0000 |
4 |
Commit: Sam James <sam <AT> gentoo <DOT> org> |
5 |
CommitDate: Mon Aug 29 22:36:08 2022 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=06cfe6d9 |
7 |
|
8 |
dev-util/scap-driver: fix kmod build on kernels >= 5.18 |
9 |
|
10 |
Bug: https://bugs.gentoo.org/866113 |
11 |
Signed-off-by: Holger Hoffstätte <holger <AT> applied-asynchrony.com> |
12 |
Closes: https://github.com/gentoo/gentoo/pull/26982 |
13 |
Signed-off-by: Sam James <sam <AT> gentoo.org> |
14 |
|
15 |
.../files/0.29.3-fix-kmod-build-on-5.18+.patch | 63 ++++++++++++++++++++++ |
16 |
dev-util/scap-driver/scap-driver-0.29.3.ebuild | 2 + |
17 |
2 files changed, 65 insertions(+) |
18 |
|
19 |
diff --git a/dev-util/scap-driver/files/0.29.3-fix-kmod-build-on-5.18+.patch b/dev-util/scap-driver/files/0.29.3-fix-kmod-build-on-5.18+.patch |
20 |
new file mode 100644 |
21 |
index 000000000000..974b561df47f |
22 |
--- /dev/null |
23 |
+++ b/dev-util/scap-driver/files/0.29.3-fix-kmod-build-on-5.18+.patch |
24 |
@@ -0,0 +1,63 @@ |
25 |
+ |
26 |
+Bug: https://bugs.gentoo.org/866113 |
27 |
+Source: https://github.com/falcosecurity/libs/pull/411/commits/36e945af4feb31c8b875f7d4624592b0c1ff929d |
28 |
+ |
29 |
+From 36e945af4feb31c8b875f7d4624592b0c1ff929d Mon Sep 17 00:00:00 2001 |
30 |
+From: Federico Di Pierro <nierro92@×××××.com> |
31 |
+Date: Mon, 20 Jun 2022 14:26:39 +0200 |
32 |
+Subject: [PATCH] fix(driver): fixed kmod build on linux kernels >= 5.18. |
33 |
+ |
34 |
+Signed-off-by: Federico Di Pierro <nierro92@×××××.com> |
35 |
+--- |
36 |
+ driver/main.c | 14 +++++++++----- |
37 |
+ 1 file changed, 9 insertions(+), 5 deletions(-) |
38 |
+ |
39 |
+diff --git a/driver/main.c b/driver/main.c |
40 |
+index 6b5ae461a..e606cc2f8 100644 |
41 |
+--- a/driver/main.c |
42 |
++++ b/driver/main.c |
43 |
+@@ -70,8 +70,9 @@ MODULE_AUTHOR("the Falco authors"); |
44 |
+ #define TRACEPOINT_PROBE(probe, args...) static void probe(void *__data, args) |
45 |
+ #endif |
46 |
+ |
47 |
+-#ifndef pgprot_encrypted |
48 |
+-#define pgprot_encrypted(x) (x) |
49 |
++// Allow build even on arch where PAGE_ENC is not implemented |
50 |
++#ifndef _PAGE_ENC |
51 |
++#define _PAGE_ENC 0 |
52 |
+ #endif |
53 |
+ |
54 |
+ struct ppm_device { |
55 |
+@@ -1217,8 +1218,9 @@ static int ppm_mmap(struct file *filp, struct vm_area_struct *vma) |
56 |
+ |
57 |
+ pfn = vmalloc_to_pfn(vmalloc_area_ptr); |
58 |
+ |
59 |
++ pgprot_val(vma->vm_page_prot) = pgprot_val(PAGE_SHARED) | _PAGE_ENC; |
60 |
+ ret = remap_pfn_range(vma, useraddr, pfn, |
61 |
+- PAGE_SIZE, pgprot_encrypted(PAGE_SHARED)); |
62 |
++ PAGE_SIZE, vma->vm_page_prot); |
63 |
+ if (ret < 0) { |
64 |
+ pr_err("remap_pfn_range failed (1)\n"); |
65 |
+ goto cleanup_mmap; |
66 |
+@@ -1255,8 +1257,9 @@ static int ppm_mmap(struct file *filp, struct vm_area_struct *vma) |
67 |
+ while (mlength > 0) { |
68 |
+ pfn = vmalloc_to_pfn(vmalloc_area_ptr); |
69 |
+ |
70 |
++ pgprot_val(vma->vm_page_prot) = pgprot_val(PAGE_SHARED) | _PAGE_ENC; |
71 |
+ ret = remap_pfn_range(vma, useraddr, pfn, |
72 |
+- PAGE_SIZE, pgprot_encrypted(PAGE_SHARED)); |
73 |
++ PAGE_SIZE, vma->vm_page_prot); |
74 |
+ if (ret < 0) { |
75 |
+ pr_err("remap_pfn_range failed (1)\n"); |
76 |
+ goto cleanup_mmap; |
77 |
+@@ -1277,8 +1280,9 @@ static int ppm_mmap(struct file *filp, struct vm_area_struct *vma) |
78 |
+ while (mlength > 0) { |
79 |
+ pfn = vmalloc_to_pfn(vmalloc_area_ptr); |
80 |
+ |
81 |
++ pgprot_val(vma->vm_page_prot) = pgprot_val(PAGE_SHARED) | _PAGE_ENC; |
82 |
+ ret = remap_pfn_range(vma, useraddr, pfn, |
83 |
+- PAGE_SIZE, pgprot_encrypted(PAGE_SHARED)); |
84 |
++ PAGE_SIZE, vma->vm_page_prot); |
85 |
+ if (ret < 0) { |
86 |
+ pr_err("remap_pfn_range failed (1)\n"); |
87 |
+ goto cleanup_mmap; |
88 |
|
89 |
diff --git a/dev-util/scap-driver/scap-driver-0.29.3.ebuild b/dev-util/scap-driver/scap-driver-0.29.3.ebuild |
90 |
index 518e80e54462..4857fc219e82 100644 |
91 |
--- a/dev-util/scap-driver/scap-driver-0.29.3.ebuild |
92 |
+++ b/dev-util/scap-driver/scap-driver-0.29.3.ebuild |
93 |
@@ -24,6 +24,8 @@ RDEPEND="!<dev-util/sysdig-${PV}[modules]" |
94 |
|
95 |
CONFIG_CHECK="HAVE_SYSCALL_TRACEPOINTS ~TRACEPOINTS" |
96 |
|
97 |
+PATCHES=( "${FILESDIR}"/${PV}-fix-kmod-build-on-5.18+.patch ) |
98 |
+ |
99 |
src_configure() { |
100 |
local mycmakeargs=( |
101 |
# we will use linux-mod, so just pretend to use bundled deps |