From 6778948f9de86c3cfaf36725a7c87dcff9ba247f Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Mon, 11 Dec 2023 08:20:59 +0000 Subject: [PATCH] kernel_5.10 no rt --- kernel/kernel/trace/trace_syscalls.c | 20 ++++++++++++-------- 1 files changed, 12 insertions(+), 8 deletions(-) diff --git a/kernel/kernel/trace/trace_syscalls.c b/kernel/kernel/trace/trace_syscalls.c index 8bfcd3b..d85a2f0 100644 --- a/kernel/kernel/trace/trace_syscalls.c +++ b/kernel/kernel/trace/trace_syscalls.c @@ -298,8 +298,9 @@ struct syscall_metadata *sys_data; struct ring_buffer_event *event; struct trace_buffer *buffer; - unsigned int trace_ctx; + unsigned long irq_flags; unsigned long args[6]; + int pc; int syscall_nr; int size; @@ -321,11 +322,12 @@ size = sizeof(*entry) + sizeof(unsigned long) * sys_data->nb_args; - trace_ctx = tracing_gen_ctx(); + local_save_flags(irq_flags); + pc = preempt_count(); buffer = tr->array_buffer.buffer; event = trace_buffer_lock_reserve(buffer, - sys_data->enter_event->event.type, size, trace_ctx); + sys_data->enter_event->event.type, size, irq_flags, pc); if (!event) return; @@ -335,7 +337,7 @@ memcpy(entry->args, args, sizeof(unsigned long) * sys_data->nb_args); event_trigger_unlock_commit(trace_file, buffer, event, entry, - trace_ctx); + irq_flags, pc); } static void ftrace_syscall_exit(void *data, struct pt_regs *regs, long ret) @@ -346,7 +348,8 @@ struct syscall_metadata *sys_data; struct ring_buffer_event *event; struct trace_buffer *buffer; - unsigned int trace_ctx; + unsigned long irq_flags; + int pc; int syscall_nr; syscall_nr = trace_get_syscall_nr(current, regs); @@ -365,12 +368,13 @@ if (!sys_data) return; - trace_ctx = tracing_gen_ctx(); + local_save_flags(irq_flags); + pc = preempt_count(); buffer = tr->array_buffer.buffer; event = trace_buffer_lock_reserve(buffer, sys_data->exit_event->event.type, sizeof(*entry), - trace_ctx); + irq_flags, pc); if (!event) return; @@ -379,7 +383,7 @@ entry->ret = syscall_get_return_value(current, regs); event_trigger_unlock_commit(trace_file, buffer, event, entry, - trace_ctx); + irq_flags, pc); } static int reg_event_syscall_enter(struct trace_event_file *file, -- Gitblit v1.6.2