diff options
Diffstat (limited to 'arch/x86/kernel/cpu')
-rw-r--r-- | arch/x86/kernel/cpu/perf_event.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c index 1d665a0b202c..c6bde7d7afdc 100644 --- a/arch/x86/kernel/cpu/perf_event.c +++ b/arch/x86/kernel/cpu/perf_event.c | |||
@@ -1707,3 +1707,15 @@ struct perf_callchain_entry *perf_callchain(struct pt_regs *regs) | |||
1707 | 1707 | ||
1708 | return entry; | 1708 | return entry; |
1709 | } | 1709 | } |
1710 | |||
1711 | void perf_arch_fetch_caller_regs(struct pt_regs *regs, unsigned long ip, int skip) | ||
1712 | { | ||
1713 | regs->ip = ip; | ||
1714 | /* | ||
1715 | * perf_arch_fetch_caller_regs adds another call, we need to increment | ||
1716 | * the skip level | ||
1717 | */ | ||
1718 | regs->bp = rewind_frame_pointer(skip + 1); | ||
1719 | regs->cs = __KERNEL_CS; | ||
1720 | local_save_flags(regs->flags); | ||
1721 | } | ||