lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 13 Jul 2022 19:00:18 +0800 From: Li Huafei <lihuafei1@...wei.com> To: <linux@...linux.org.uk>, <rmk+kernel@...linux.org.uk>, <ardb@...nel.org>, <will@...nel.org>, <broonie@...nel.org> CC: <mark.rutland@....com>, <peterz@...radead.org>, <mingo@...hat.com>, <acme@...nel.org>, <alexander.shishkin@...ux.intel.com>, <jolsa@...nel.org>, <namhyung@...nel.org>, <arnd@...db.de>, <linus.walleij@...aro.org>, <rostedt@...dmis.org>, <nick.hawkins@....com>, <john@...ozen.org>, <mhiramat@...nel.org>, <ast@...nel.org>, <linyujun809@...wei.com>, <ndesaulniers@...gle.com>, <lihuafei1@...wei.com>, <linux-arm-kernel@...ts.infradead.org>, <linux-kernel@...r.kernel.org>, <linux-perf-users@...r.kernel.org> Subject: [PATCH v2 3/5] ARM: stacktrace: Allow stack trace saving for non-current tasks The current ARM implementation of save_stack_trace_tsk() does not allow saving stack trace for non-current tasks, which may limit the scenarios in which stack_trace_save_tsk() can be used. Like other architectures, or like ARM's unwind_backtrace(), we can leave it up to the caller to ensure that the task that needs to be unwound is not running. Signed-off-by: Li Huafei <lihuafei1@...wei.com> --- arch/arm/kernel/stacktrace.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/arch/arm/kernel/stacktrace.c b/arch/arm/kernel/stacktrace.c index 3acf51ee46bb..836420c00938 100644 --- a/arch/arm/kernel/stacktrace.c +++ b/arch/arm/kernel/stacktrace.c @@ -171,19 +171,11 @@ static noinline void __save_stack_trace(struct task_struct *tsk, data.no_sched_functions = nosched; if (tsk != current) { -#ifdef CONFIG_SMP - /* - * What guarantees do we have here that 'tsk' is not - * running on another CPU? For now, ignore it as we - * can't guarantee we won't explode. - */ - return; -#else + /* task blocked in __switch_to */ frame.fp = thread_saved_fp(tsk); frame.sp = thread_saved_sp(tsk); frame.lr = 0; /* recovered from the stack */ frame.pc = thread_saved_pc(tsk); -#endif } else { /* We don't want this function nor the caller */ data.skip += 2; -- 2.17.1
Powered by blists - more mailing lists