Merge branch 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

* 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
perf: Fix unsafe frame rewinding with hot regs fetching

+6 -2
+6 -2
arch/x86/kernel/dumpstack.h
··· 14 14 #define get_bp(bp) asm("movq %%rbp, %0" : "=r" (bp) :) 15 15 #endif 16 16 17 + #include <linux/uaccess.h> 18 + 17 19 extern void 18 20 show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs, 19 21 unsigned long *stack, unsigned long bp, char *log_lvl); ··· 44 42 get_bp(frame); 45 43 46 44 #ifdef CONFIG_FRAME_POINTER 47 - while (n--) 48 - frame = frame->next_frame; 45 + while (n--) { 46 + if (probe_kernel_address(&frame->next_frame, frame)) 47 + break; 48 + } 49 49 #endif 50 50 51 51 return (unsigned long)frame;