Diamorphine
Diamorphine copied to clipboard
Support Ubuntu 24.04 LTS
linux-headers-6.8.0-31-generic dont'work.
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/diff/kernel/trace/trace_syscalls.c?id=v6.8.8&id2=v6.6.1
diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c index de753403cdafbd..9c581d6da843a3 100644 --- a/kernel/trace/trace_syscalls.c +++ b/kernel/trace/trace_syscalls.c @@ -556,7 +556,7 @@ static int perf_call_bpf_enter(struct trace_event_call *call, struct pt_regs *re { struct syscall_tp_t { struct trace_entry ent;
-
unsigned long syscall_nr;
-
} __aligned(8) param; int i; @@ -661,7 +661,7 @@ static int perf_call_bpf_exit(struct trace_event_call *call, struct pt_regs *reg { struct syscall_tp_t { struct trace_entry ent;int syscall_nr; unsigned long args[SYSCALL_DEFINE_MAXARGS];
-
unsigned long syscall_nr;
-
} __aligned(8) param;int syscall_nr; unsigned long ret;
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/diff/arch/x86/entry/syscall_32.c?id=v6.8.8&id2=v6.3.1
diff --git a/arch/x86/entry/syscall_32.c b/arch/x86/entry/syscall_32.c index 8cfc9bc73e7f8b..c2235bae17ef66 100644 --- a/arch/x86/entry/syscall_32.c +++ b/arch/x86/entry/syscall_32.c @@ -18,8 +18,25 @@ #include <asm/syscalls_32.h> #undef __SYSCALL
+/*
-
- The sys_call_table[] is no longer used for system calls, but
-
- kernel/trace/trace_syscalls.c still wants to know the system
-
- call address.
- */ +#ifdef CONFIG_X86_32 #define __SYSCALL(nr, sym) _ia32##sym,
-__visible const sys_call_ptr_t ia32_sys_call_table[] = { +const sys_call_ptr_t sys_call_table[] = { #include <asm/syscalls_32.h> }; +#undef __SYSCALL +#endif + +#define __SYSCALL(nr, sym) case nr: return _ia32##sym(regs); + +long ia32_sys_call(const struct pt_regs *regs, unsigned int nr) +{
- switch (nr) {
- #include <asm/syscalls_32.h>
- default: return __ia32_sys_ni_syscall(regs);
- } +};
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/diff/arch/x86/entry/syscall_64.c?id=v6.8.8&id2=v6.6.1
diff --git a/arch/x86/entry/syscall_64.c b/arch/x86/entry/syscall_64.c index be120eec1fc9f9..33b3f09e6f151e 100644 --- a/arch/x86/entry/syscall_64.c +++ b/arch/x86/entry/syscall_64.c @@ -11,8 +11,23 @@ #include <asm/syscalls_64.h> #undef __SYSCALL
+/*
-
- The sys_call_table[] is no longer used for system calls, but
-
- kernel/trace/trace_syscalls.c still wants to know the system
-
- call address.
- */ #define __SYSCALL(nr, sym) _x64##sym,
-asmlinkage const sys_call_ptr_t sys_call_table[] = { +const sys_call_ptr_t sys_call_table[] = { #include <asm/syscalls_64.h> }; +#undef __SYSCALL + +#define __SYSCALL(nr, sym) case nr: return _x64##sym(regs); + +long x64_sys_call(const struct pt_regs *regs, unsigned int nr) +{
- switch (nr) {
- #include <asm/syscalls_64.h>
- default: return __x64_sys_ni_syscall(regs);
- } +};