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 ---