.. | .. |
---|
26 | 26 | |
---|
27 | 27 | static void _send_sig(int signo, int code, unsigned long addr) |
---|
28 | 28 | { |
---|
29 | | - force_sig_fault(signo, code, (void __user *) addr, current); |
---|
| 29 | + force_sig_fault(signo, code, (void __user *) addr); |
---|
30 | 30 | } |
---|
31 | 31 | |
---|
32 | 32 | void die(const char *str, struct pt_regs *regs, long err) |
---|
.. | .. |
---|
37 | 37 | show_regs(regs); |
---|
38 | 38 | spin_unlock_irq(&die_lock); |
---|
39 | 39 | /* |
---|
40 | | - * do_exit() should take care of panic'ing from an interrupt |
---|
| 40 | + * make_task_dead() should take care of panic'ing from an interrupt |
---|
41 | 41 | * context so we don't handle it here |
---|
42 | 42 | */ |
---|
43 | | - do_exit(err); |
---|
| 43 | + make_task_dead(err); |
---|
44 | 44 | } |
---|
45 | 45 | |
---|
46 | 46 | void _exception(int signo, struct pt_regs *regs, int code, unsigned long addr) |
---|
.. | .. |
---|
52 | 52 | } |
---|
53 | 53 | |
---|
54 | 54 | /* |
---|
55 | | - * The show_stack is an external API which we do not use ourselves. |
---|
| 55 | + * The show_stack() is external API which we do not use ourselves. |
---|
56 | 56 | */ |
---|
57 | 57 | |
---|
58 | 58 | int kstack_depth_to_print = 48; |
---|
59 | 59 | |
---|
60 | | -void show_stack(struct task_struct *task, unsigned long *stack) |
---|
| 60 | +void show_stack(struct task_struct *task, unsigned long *stack, |
---|
| 61 | + const char *loglvl) |
---|
61 | 62 | { |
---|
62 | 63 | unsigned long *endstack, addr; |
---|
63 | 64 | int i; |
---|
.. | .. |
---|
72 | 73 | addr = (unsigned long) stack; |
---|
73 | 74 | endstack = (unsigned long *) PAGE_ALIGN(addr); |
---|
74 | 75 | |
---|
75 | | - pr_emerg("Stack from %08lx:", (unsigned long)stack); |
---|
| 76 | + printk("%sStack from %08lx:", loglvl, (unsigned long)stack); |
---|
76 | 77 | for (i = 0; i < kstack_depth_to_print; i++) { |
---|
77 | 78 | if (stack + 1 > endstack) |
---|
78 | 79 | break; |
---|
79 | 80 | if (i % 8 == 0) |
---|
80 | | - pr_emerg("\n "); |
---|
81 | | - pr_emerg(" %08lx", *stack++); |
---|
| 81 | + printk("%s\n ", loglvl); |
---|
| 82 | + printk("%s %08lx", loglvl, *stack++); |
---|
82 | 83 | } |
---|
83 | 84 | |
---|
84 | | - pr_emerg("\nCall Trace:"); |
---|
| 85 | + printk("%s\nCall Trace:", loglvl); |
---|
85 | 86 | i = 0; |
---|
86 | 87 | while (stack + 1 <= endstack) { |
---|
87 | 88 | addr = *stack++; |
---|
.. | .. |
---|
97 | 98 | (addr <= (unsigned long) _etext))) { |
---|
98 | 99 | if (i % 4 == 0) |
---|
99 | 100 | pr_emerg("\n "); |
---|
100 | | - pr_emerg(" [<%08lx>]", addr); |
---|
| 101 | + printk("%s [<%08lx>]", loglvl, addr); |
---|
101 | 102 | i++; |
---|
102 | 103 | } |
---|
103 | 104 | } |
---|
104 | | - pr_emerg("\n"); |
---|
| 105 | + printk("%s\n", loglvl); |
---|
105 | 106 | } |
---|
106 | 107 | |
---|
107 | 108 | void __init trap_init(void) |
---|