dumpstack_32.c (dfdc5437bd62dd6a26961e27f26b671374749875) dumpstack_32.c (7ee991fbc6f947e9b04f29c9c6c1d057d0671a16)
1/*
2 * Copyright (C) 1991, 1992 Linus Torvalds
3 * Copyright (C) 2000, 2001, 2002 Andi Kleen, SuSE Labs
4 */
5#include <linux/kallsyms.h>
6#include <linux/kprobes.h>
7#include <linux/uaccess.h>
8#include <linux/utsname.h>

--- 9 unchanged lines hidden (view full) ---

18#include <asm/stacktrace.h>
19
20#include "dumpstack.h"
21
22void dump_trace(struct task_struct *task, struct pt_regs *regs,
23 unsigned long *stack, unsigned long bp,
24 const struct stacktrace_ops *ops, void *data)
25{
1/*
2 * Copyright (C) 1991, 1992 Linus Torvalds
3 * Copyright (C) 2000, 2001, 2002 Andi Kleen, SuSE Labs
4 */
5#include <linux/kallsyms.h>
6#include <linux/kprobes.h>
7#include <linux/uaccess.h>
8#include <linux/utsname.h>

--- 9 unchanged lines hidden (view full) ---

18#include <asm/stacktrace.h>
19
20#include "dumpstack.h"
21
22void dump_trace(struct task_struct *task, struct pt_regs *regs,
23 unsigned long *stack, unsigned long bp,
24 const struct stacktrace_ops *ops, void *data)
25{
26 int graph = 0;
27
26 if (!task)
27 task = current;
28
29 if (!stack) {
30 unsigned long dummy;
31 stack = &dummy;
32 if (task && task != current)
33 stack = (unsigned long *)task->thread.sp;

--- 11 unchanged lines hidden (view full) ---

45 }
46#endif
47
48 for (;;) {
49 struct thread_info *context;
50
51 context = (struct thread_info *)
52 ((unsigned long)stack & (~(THREAD_SIZE - 1)));
28 if (!task)
29 task = current;
30
31 if (!stack) {
32 unsigned long dummy;
33 stack = &dummy;
34 if (task && task != current)
35 stack = (unsigned long *)task->thread.sp;

--- 11 unchanged lines hidden (view full) ---

47 }
48#endif
49
50 for (;;) {
51 struct thread_info *context;
52
53 context = (struct thread_info *)
54 ((unsigned long)stack & (~(THREAD_SIZE - 1)));
53 bp = print_context_stack(context, stack, bp, ops, data, NULL);
55 bp = print_context_stack(context, stack, bp, ops,
56 data, NULL, &graph);
54
55 stack = (unsigned long *)context->previous_esp;
56 if (!stack)
57 break;
58 if (ops->stack(data, "IRQ") < 0)
59 break;
60 touch_nmi_watchdog();
61 }

--- 90 unchanged lines hidden ---
57
58 stack = (unsigned long *)context->previous_esp;
59 if (!stack)
60 break;
61 if (ops->stack(data, "IRQ") < 0)
62 break;
63 touch_nmi_watchdog();
64 }

--- 90 unchanged lines hidden ---