hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/arch/x86/kernel/dumpstack.c
....@@ -195,7 +195,6 @@
195195 printk("%sCall Trace:\n", log_lvl);
196196
197197 unwind_start(&state, task, regs, stack);
198
- stack = stack ? : get_stack_pointer(task, regs);
199198 regs = unwind_get_entry_regs(&state, &partial);
200199
201200 /*
....@@ -214,8 +213,12 @@
214213 * - hardirq stack
215214 * - entry stack
216215 */
217
- for ( ; stack; stack = PTR_ALIGN(stack_info.next_sp, sizeof(long))) {
216
+ for (stack = stack ?: get_stack_pointer(task, regs);
217
+ stack;
218
+ stack = stack_info.next_sp) {
218219 const char *stack_name;
220
+
221
+ stack = PTR_ALIGN(stack, sizeof(long));
219222
220223 if (get_stack_info(stack, task, &stack_info, &visit_mask)) {
221224 /*
....@@ -351,7 +354,7 @@
351354 }
352355 NOKPROBE_SYMBOL(oops_begin);
353356
354
-void __noreturn rewind_stack_do_exit(int signr);
357
+void __noreturn rewind_stack_and_make_dead(int signr);
355358
356359 void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
357360 {
....@@ -386,7 +389,7 @@
386389 * reuse the task stack and that existing poisons are invalid.
387390 */
388391 kasan_unpoison_task_stack(current);
389
- rewind_stack_do_exit(signr);
392
+ rewind_stack_and_make_dead(signr);
390393 }
391394 NOKPROBE_SYMBOL(oops_end);
392395