From 244b2c5ca8b14627e4a17755e5922221e121c771 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Wed, 09 Oct 2024 06:15:07 +0000
Subject: [PATCH] change system file
---
kernel/kernel/trace/trace_functions.c | 28 ++++++++++++++++------------
1 files changed, 16 insertions(+), 12 deletions(-)
diff --git a/kernel/kernel/trace/trace_functions.c b/kernel/kernel/trace/trace_functions.c
index 8606cb7..93e20ed 100644
--- a/kernel/kernel/trace/trace_functions.c
+++ b/kernel/kernel/trace/trace_functions.c
@@ -133,14 +133,15 @@
{
struct trace_array *tr = op->private;
struct trace_array_cpu *data;
- unsigned int trace_ctx;
+ unsigned long flags;
int bit;
int cpu;
+ int pc;
if (unlikely(!tr->function_enabled))
return;
- trace_ctx = tracing_gen_ctx();
+ pc = preempt_count();
preempt_disable_notrace();
bit = trace_test_and_set_recursion(TRACE_FTRACE_START);
@@ -149,9 +150,10 @@
cpu = smp_processor_id();
data = per_cpu_ptr(tr->array_buffer.data, cpu);
- if (!atomic_read(&data->disabled))
- trace_function(tr, ip, parent_ip, trace_ctx);
-
+ if (!atomic_read(&data->disabled)) {
+ local_save_flags(flags);
+ trace_function(tr, ip, parent_ip, flags, pc);
+ }
trace_clear_recursion(bit);
out:
@@ -185,7 +187,7 @@
unsigned long flags;
long disabled;
int cpu;
- unsigned int trace_ctx;
+ int pc;
if (unlikely(!tr->function_enabled))
return;
@@ -200,9 +202,9 @@
disabled = atomic_inc_return(&data->disabled);
if (likely(disabled == 1)) {
- trace_ctx = tracing_gen_ctx_flags(flags);
- trace_function(tr, ip, parent_ip, trace_ctx);
- __trace_stack(tr, trace_ctx, STACK_SKIP);
+ pc = preempt_count();
+ trace_function(tr, ip, parent_ip, flags, pc);
+ __trace_stack(tr, flags, STACK_SKIP, pc);
}
atomic_dec(&data->disabled);
@@ -405,11 +407,13 @@
static __always_inline void trace_stack(struct trace_array *tr)
{
- unsigned int trace_ctx;
+ unsigned long flags;
+ int pc;
- trace_ctx = tracing_gen_ctx();
+ local_save_flags(flags);
+ pc = preempt_count();
- __trace_stack(tr, trace_ctx, FTRACE_STACK_SKIP);
+ __trace_stack(tr, flags, FTRACE_STACK_SKIP, pc);
}
static void
--
Gitblit v1.6.2