stacktrace.c (0134e89c7bcc9fde1da962c82a120691e185619f) | stacktrace.c (d5996b2ff0e26cf7ed4c103084a2d6fc569e7216) |
---|---|
1#include <linux/module.h> 2#include <linux/sched.h> 3#include <linux/stacktrace.h> 4 5#include <asm/stacktrace.h> 6 7#if defined(CONFIG_FRAME_POINTER) && !defined(CONFIG_ARM_UNWIND) 8/* --- 80 unchanged lines hidden (view full) --- 89 struct stackframe frame; 90 91 data.trace = trace; 92 data.skip = trace->skip; 93 94 if (tsk != current) { 95#ifdef CONFIG_SMP 96 /* | 1#include <linux/module.h> 2#include <linux/sched.h> 3#include <linux/stacktrace.h> 4 5#include <asm/stacktrace.h> 6 7#if defined(CONFIG_FRAME_POINTER) && !defined(CONFIG_ARM_UNWIND) 8/* --- 80 unchanged lines hidden (view full) --- 89 struct stackframe frame; 90 91 data.trace = trace; 92 data.skip = trace->skip; 93 94 if (tsk != current) { 95#ifdef CONFIG_SMP 96 /* |
97 * What guarantees do we have here that 'tsk' 98 * is not running on another CPU? | 97 * What guarantees do we have here that 'tsk' is not 98 * running on another CPU? For now, ignore it as we 99 * can't guarantee we won't explode. |
99 */ | 100 */ |
100 BUG(); | 101 if (trace->nr_entries < trace->max_entries) 102 trace->entries[trace->nr_entries++] = ULONG_MAX; 103 return; |
101#else 102 data.no_sched_functions = 1; 103 frame.fp = thread_saved_fp(tsk); 104 frame.sp = thread_saved_sp(tsk); 105 frame.lr = 0; /* recovered from the stack */ 106 frame.pc = thread_saved_pc(tsk); 107#endif 108 } else { --- 20 unchanged lines hidden --- | 104#else 105 data.no_sched_functions = 1; 106 frame.fp = thread_saved_fp(tsk); 107 frame.sp = thread_saved_sp(tsk); 108 frame.lr = 0; /* recovered from the stack */ 109 frame.pc = thread_saved_pc(tsk); 110#endif 111 } else { --- 20 unchanged lines hidden --- |