stack_trace_consume_fn has been changed to bool (*stack_trace_consume_fn)(void *cookie, struct frame_info *fi); to be able to pass more information. Turn to use pc in struct frame_info in arch_stack_walk callbacks without functinoal change. Signed-off-by: He Zhe <zhe.he@xxxxxxxxxxxxx> --- arch/arm64/kernel/perf_callchain.c | 4 ++-- arch/arm64/kernel/process.c | 6 +++--- arch/arm64/kernel/return_address.c | 4 ++-- arch/arm64/kernel/time.c | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/arch/arm64/kernel/perf_callchain.c b/arch/arm64/kernel/perf_callchain.c index 65b196e3ca6c..d32918b34c0c 100644 --- a/arch/arm64/kernel/perf_callchain.c +++ b/arch/arm64/kernel/perf_callchain.c @@ -132,10 +132,10 @@ void perf_callchain_user(struct perf_callchain_entry_ctx *entry, } } -static bool callchain_trace(void *data, unsigned long pc) +static bool callchain_trace(void *data, struct frame_info *fi) { struct perf_callchain_entry_ctx *entry = data; - return perf_callchain_store(entry, pc) == 0; + return perf_callchain_store(entry, fi->pc) == 0; } void perf_callchain_kernel(struct perf_callchain_entry_ctx *entry, diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c index 7fa97df55e3a..e96a8a614a1a 100644 --- a/arch/arm64/kernel/process.c +++ b/arch/arm64/kernel/process.c @@ -527,12 +527,12 @@ struct wchan_info { int count; }; -static bool get_wchan_cb(void *arg, unsigned long pc) +static bool get_wchan_cb(void *arg, struct frame_info *fi) { struct wchan_info *wchan_info = arg; - if (!in_sched_functions(pc)) { - wchan_info->pc = pc; + if (!in_sched_functions(fi->pc)) { + wchan_info->pc = fi->pc; return false; } return wchan_info->count++ < 16; diff --git a/arch/arm64/kernel/return_address.c b/arch/arm64/kernel/return_address.c index 68330017d04f..ec9be91623c4 100644 --- a/arch/arm64/kernel/return_address.c +++ b/arch/arm64/kernel/return_address.c @@ -18,12 +18,12 @@ struct return_address_data { void *addr; }; -static bool save_return_addr(void *d, unsigned long pc) +static bool save_return_addr(void *d, struct frame_info *fi) { struct return_address_data *data = d; if (!data->level) { - data->addr = (void *)pc; + data->addr = (void *)fi->pc; return false; } else { --data->level; diff --git a/arch/arm64/kernel/time.c b/arch/arm64/kernel/time.c index b5855eb7435d..6b1a9de7c852 100644 --- a/arch/arm64/kernel/time.c +++ b/arch/arm64/kernel/time.c @@ -32,13 +32,13 @@ #include <asm/thread_info.h> #include <asm/paravirt.h> -static bool profile_pc_cb(void *arg, unsigned long pc) +static bool profile_pc_cb(void *arg, struct frame_info *fi) { unsigned long *prof_pc = arg; - if (in_lock_functions(pc)) + if (in_lock_functions(fi->pc)) return true; - *prof_pc = pc; + *prof_pc = fi->pc; return false; } -- 2.25.1