I have been misled by comments in asm-generic/ptrace.h into thinking that frame_pointer() is universally available across architectures, which resulted in a wrong design decision.
Add a comment about frame_pointer in a hope that it will help others to avoid this mistake in the future. Cc: Oleg Nesterov <[email protected]> Cc: Arnd Bergmann <[email protected]> Cc: [email protected] Signed-off-by: Dmitry V. Levin <[email protected]> --- include/asm-generic/ptrace.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/asm-generic/ptrace.h b/include/asm-generic/ptrace.h index 82e674f6b337..3186c30bd50d 100644 --- a/include/asm-generic/ptrace.h +++ b/include/asm-generic/ptrace.h @@ -59,6 +59,10 @@ static inline void user_stack_pointer_set(struct pt_regs *regs, #define SET_FP(regs, val) (GET_FP(regs) = (val)) #endif +/* + * Unlike instruction_pointer and user_stack_pointer, + * frame_pointer is not universally available across architectures. + */ static inline unsigned long frame_pointer(struct pt_regs *regs) { return GET_FP(regs); -- ldv

