From ba71b410db6532bf582ed962e5f226ee35c9cc5e Mon Sep 17 00:00:00 2001 From: sidex15 <24408329+sidex15@users.noreply.github.com> Date: Thu, 15 May 2025 17:38:34 +0800 Subject: [PATCH] kernel: kpm: add compatibility for kernel 4.14 and lower (#76) `thread_pid` is not defined in kernel 4.14 and lower, leading to compilation issue. To fix this, use `pids[PIDTYPE_PID].pid` for kernel versions 4.14 and lower. Else use `thread_pid` for kernel versions 4.19 and higher. Reference: https://github.com/yanivagman/BPFroid/blob/107717913bce95d6d5c232bf8dc4b11932b59d50/tracee/tracee.bpf.c#L354 --- kernel/kpm/super_access.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/kpm/super_access.c b/kernel/kpm/super_access.c index b3e72237..236c39bf 100644 --- a/kernel/kpm/super_access.c +++ b/kernel/kpm/super_access.c @@ -171,7 +171,9 @@ DYNAMIC_STRUCT_BEGIN(task_struct) DEFINE_MEMBER(task_struct, group_leader) DEFINE_MEMBER(task_struct, mm) DEFINE_MEMBER(task_struct, active_mm) -#if LINUX_VERSION_CODE > KERNEL_VERSION_4_10 +#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 19, 0) + DEFINE_MEMBER(task_struct, pids[PIDTYPE_PID].pid) +#else DEFINE_MEMBER(task_struct, thread_pid) #endif DEFINE_MEMBER(task_struct, files)