diff --git a/arch/alpha/include/asm/ftrace.h b/arch/alpha/include/asm/ftrace.h index 7ec44134c804..5b75a294a7c9 100644 --- a/arch/alpha/include/asm/ftrace.h +++ b/arch/alpha/include/asm/ftrace.h @@ -2,8 +2,6 @@ #ifndef _ASM_ALPHA_FTRACE_H #define _ASM_ALPHA_FTRACE_H -#ifdef CONFIG_FRAME_POINTER - static void *alpha_ftrace_return_address0(void) noinline notrace; static void *alpha_ftrace_return_address0(void) @@ -13,6 +11,8 @@ static void *alpha_ftrace_return_address0(void) #define ftrace_return_address0 alpha_ftrace_return_address0() +#ifdef CONFIG_FRAME_POINTER + /* * __builtin_return_address() requires a constant integer argument. * Keep this as a macro so the value is seen at the callsite. @@ -21,7 +21,6 @@ static void *alpha_ftrace_return_address0(void) #else /* !CONFIG_FRAME_POINTER */ -#define ftrace_return_address0 0UL #define ftrace_return_address(n) ((void)(n), 0UL) #endif /* CONFIG_FRAME_POINTER */ diff --git a/arch/alpha/include/asm/perf_event.h b/arch/alpha/include/asm/perf_event.h index 5996e7a6757e..72536566014a 100644 --- a/arch/alpha/include/asm/perf_event.h +++ b/arch/alpha/include/asm/perf_event.h @@ -1,4 +1,11 @@ #ifndef __ASM_ALPHA_PERF_EVENT_H #define __ASM_ALPHA_PERF_EVENT_H +/* + * Software events have no trap frame, so perf_fetch_caller_regs() fills + * in a zeroed pt_regs. A zero ps already means kernel mode; only pc is + * missing. + */ +#define perf_arch_fetch_caller_regs(regs, __ip) ((regs)->pc = (__ip)) + #endif /* __ASM_ALPHA_PERF_EVENT_H */