.. | .. |
---|
121 | 121 | } |
---|
122 | 122 | |
---|
123 | 123 | static void |
---|
124 | | -dik_show_trace(unsigned long *sp) |
---|
| 124 | +dik_show_trace(unsigned long *sp, const char *loglvl) |
---|
125 | 125 | { |
---|
126 | 126 | long i = 0; |
---|
127 | | - printk("Trace:\n"); |
---|
| 127 | + printk("%sTrace:\n", loglvl); |
---|
128 | 128 | while (0x1ff8 & (unsigned long) sp) { |
---|
129 | 129 | extern char _stext[], _etext[]; |
---|
130 | 130 | unsigned long tmp = *sp; |
---|
.. | .. |
---|
133 | 133 | continue; |
---|
134 | 134 | if (tmp >= (unsigned long) &_etext) |
---|
135 | 135 | continue; |
---|
136 | | - printk("[<%lx>] %pSR\n", tmp, (void *)tmp); |
---|
| 136 | + printk("%s[<%lx>] %pSR\n", loglvl, tmp, (void *)tmp); |
---|
137 | 137 | if (i > 40) { |
---|
138 | | - printk(" ..."); |
---|
| 138 | + printk("%s ...", loglvl); |
---|
139 | 139 | break; |
---|
140 | 140 | } |
---|
141 | 141 | } |
---|
142 | | - printk("\n"); |
---|
| 142 | + printk("%s\n", loglvl); |
---|
143 | 143 | } |
---|
144 | 144 | |
---|
145 | 145 | static int kstack_depth_to_print = 24; |
---|
146 | 146 | |
---|
147 | | -void show_stack(struct task_struct *task, unsigned long *sp) |
---|
| 147 | +void show_stack(struct task_struct *task, unsigned long *sp, const char *loglvl) |
---|
148 | 148 | { |
---|
149 | 149 | unsigned long *stack; |
---|
150 | 150 | int i; |
---|
151 | 151 | |
---|
152 | 152 | /* |
---|
153 | | - * debugging aid: "show_stack(NULL);" prints the |
---|
| 153 | + * debugging aid: "show_stack(NULL, NULL, KERN_EMERG);" prints the |
---|
154 | 154 | * back trace for this cpu. |
---|
155 | 155 | */ |
---|
156 | 156 | if(sp==NULL) |
---|
.. | .. |
---|
163 | 163 | if ((i % 4) == 0) { |
---|
164 | 164 | if (i) |
---|
165 | 165 | pr_cont("\n"); |
---|
166 | | - printk(" "); |
---|
| 166 | + printk("%s ", loglvl); |
---|
167 | 167 | } else { |
---|
168 | 168 | pr_cont(" "); |
---|
169 | 169 | } |
---|
170 | 170 | pr_cont("%016lx", *stack++); |
---|
171 | 171 | } |
---|
172 | 172 | pr_cont("\n"); |
---|
173 | | - dik_show_trace(sp); |
---|
| 173 | + dik_show_trace(sp, loglvl); |
---|
174 | 174 | } |
---|
175 | 175 | |
---|
176 | 176 | void |
---|
.. | .. |
---|
184 | 184 | printk("%s(%d): %s %ld\n", current->comm, task_pid_nr(current), str, err); |
---|
185 | 185 | dik_show_regs(regs, r9_15); |
---|
186 | 186 | add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE); |
---|
187 | | - dik_show_trace((unsigned long *)(regs+1)); |
---|
| 187 | + dik_show_trace((unsigned long *)(regs+1), KERN_DEFAULT); |
---|
188 | 188 | dik_show_code((unsigned int *)regs->pc); |
---|
189 | 189 | |
---|
190 | 190 | if (test_and_set_thread_flag (TIF_DIE_IF_KERNEL)) { |
---|
.. | .. |
---|
402 | 402 | { |
---|
403 | 403 | die_if_kernel("Instruction fault", regs, 0, NULL); |
---|
404 | 404 | |
---|
405 | | - force_sig_fault(SIGILL, ILL_ILLOPC, (void __user *)regs->pc, 0, current); |
---|
| 405 | + force_sig_fault(SIGILL, ILL_ILLOPC, (void __user *)regs->pc, 0); |
---|
406 | 406 | } |
---|
407 | 407 | |
---|
408 | 408 | |
---|
.. | .. |
---|
625 | 625 | printk("gp = %016lx sp = %p\n", regs->gp, regs+1); |
---|
626 | 626 | |
---|
627 | 627 | dik_show_code((unsigned int *)pc); |
---|
628 | | - dik_show_trace((unsigned long *)(regs+1)); |
---|
| 628 | + dik_show_trace((unsigned long *)(regs+1), KERN_DEFAULT); |
---|
629 | 629 | |
---|
630 | 630 | if (test_and_set_thread_flag (TIF_DIE_IF_KERNEL)) { |
---|
631 | 631 | printk("die_if_kernel recursion detected.\n"); |
---|
.. | .. |
---|
883 | 883 | |
---|
884 | 884 | case 0x26: /* sts */ |
---|
885 | 885 | fake_reg = s_reg_to_mem(alpha_read_fp_reg(reg)); |
---|
886 | | - /* FALLTHRU */ |
---|
| 886 | + fallthrough; |
---|
887 | 887 | |
---|
888 | 888 | case 0x2c: /* stl */ |
---|
889 | 889 | __asm__ __volatile__( |
---|
.. | .. |
---|
911 | 911 | |
---|
912 | 912 | case 0x27: /* stt */ |
---|
913 | 913 | fake_reg = alpha_read_fp_reg(reg); |
---|
914 | | - /* FALLTHRU */ |
---|
| 914 | + fallthrough; |
---|
915 | 915 | |
---|
916 | 916 | case 0x2d: /* stq */ |
---|
917 | 917 | __asm__ __volatile__( |
---|
.. | .. |
---|
957 | 957 | si_code = SEGV_ACCERR; |
---|
958 | 958 | else { |
---|
959 | 959 | struct mm_struct *mm = current->mm; |
---|
960 | | - down_read(&mm->mmap_sem); |
---|
| 960 | + mmap_read_lock(mm); |
---|
961 | 961 | if (find_vma(mm, (unsigned long)va)) |
---|
962 | 962 | si_code = SEGV_ACCERR; |
---|
963 | 963 | else |
---|
964 | 964 | si_code = SEGV_MAPERR; |
---|
965 | | - up_read(&mm->mmap_sem); |
---|
| 965 | + mmap_read_unlock(mm); |
---|
966 | 966 | } |
---|
967 | 967 | send_sig_fault(SIGSEGV, si_code, va, 0, current); |
---|
968 | 968 | return; |
---|