mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
unwind_user/x86: Enable frame pointer unwinding on x86
Use ARCH_INIT_USER_FP_FRAME to describe how frame pointers are unwound on x86, and enable CONFIG_HAVE_UNWIND_USER_FP accordingly so the unwind_user interfaces can be used. Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://patch.msgid.link/20250827193828.347397433@kernel.org
This commit is contained in:
committed by
Peter Zijlstra
parent
c79dd946e3
commit
49cf34c081
@@ -297,6 +297,7 @@ config X86
|
||||
select HAVE_SYSCALL_TRACEPOINTS
|
||||
select HAVE_UACCESS_VALIDATION if HAVE_OBJTOOL
|
||||
select HAVE_UNSTABLE_SCHED_CLOCK
|
||||
select HAVE_UNWIND_USER_FP if X86_64
|
||||
select HAVE_USER_RETURN_NOTIFIER
|
||||
select HAVE_GENERIC_VDSO
|
||||
select VDSO_GETRANDOM if X86_64
|
||||
|
||||
25
arch/x86/include/asm/unwind_user.h
Normal file
25
arch/x86/include/asm/unwind_user.h
Normal file
@@ -0,0 +1,25 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef _ASM_X86_UNWIND_USER_H
|
||||
#define _ASM_X86_UNWIND_USER_H
|
||||
|
||||
#include <asm/ptrace.h>
|
||||
|
||||
#define ARCH_INIT_USER_FP_FRAME(ws) \
|
||||
.cfa_off = 2*(ws), \
|
||||
.ra_off = -1*(ws), \
|
||||
.fp_off = -2*(ws), \
|
||||
.use_fp = true,
|
||||
|
||||
static inline int unwind_user_word_size(struct pt_regs *regs)
|
||||
{
|
||||
/* We can't unwind VM86 stacks */
|
||||
if (regs->flags & X86_VM_MASK)
|
||||
return 0;
|
||||
#ifdef CONFIG_X86_64
|
||||
if (!user_64bit_mode(regs))
|
||||
return sizeof(int);
|
||||
#endif
|
||||
return sizeof(long);
|
||||
}
|
||||
|
||||
#endif /* _ASM_X86_UNWIND_USER_H */
|
||||
Reference in New Issue
Block a user