hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/arch/xtensa/kernel/traps.c
....@@ -503,7 +503,7 @@
503503
504504 void show_stack(struct task_struct *task, unsigned long *sp, const char *loglvl)
505505 {
506
- size_t len;
506
+ size_t len, off = 0;
507507
508508 if (!sp)
509509 sp = stack_pointer(task);
....@@ -512,9 +512,17 @@
512512 kstack_depth_to_print * STACK_DUMP_ENTRY_SIZE);
513513
514514 printk("%sStack:\n", loglvl);
515
- print_hex_dump(loglvl, " ", DUMP_PREFIX_NONE,
516
- STACK_DUMP_LINE_SIZE, STACK_DUMP_ENTRY_SIZE,
517
- sp, len, false);
515
+ while (off < len) {
516
+ u8 line[STACK_DUMP_LINE_SIZE];
517
+ size_t line_len = len - off > STACK_DUMP_LINE_SIZE ?
518
+ STACK_DUMP_LINE_SIZE : len - off;
519
+
520
+ __memcpy(line, (u8 *)sp + off, line_len);
521
+ print_hex_dump(loglvl, " ", DUMP_PREFIX_NONE,
522
+ STACK_DUMP_LINE_SIZE, STACK_DUMP_ENTRY_SIZE,
523
+ line, line_len, false);
524
+ off += STACK_DUMP_LINE_SIZE;
525
+ }
518526 show_trace(task, sp, loglvl);
519527 }
520528
....@@ -545,5 +553,5 @@
545553 if (panic_on_oops)
546554 panic("Fatal exception");
547555
548
- do_exit(err);
556
+ make_task_dead(err);
549557 }