Print the following line for the stack frame with zero backchain
pointer prior to printing PSW and GPRS:
KERNEL-MODE INTERRUPT FRAME, pt_regs at <address>:
or
USER-MODE INTERRUPT FRAME, pt_regs at <address>:
Suggested-by: Heiko Carstens <hca(a)linux.ibm.com>
Signed-off-by: Mikhail Zaslonko <zaslonko(a)linux.ibm.com>
---
s390x.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/s390x.c b/s390x.c
index 0e8e2b3..b76edfa 100644
--- a/s390x.c
+++ b/s390x.c
@@ -1738,6 +1738,7 @@ static unsigned long show_trace(struct bt_info *bt, int cnt,
unsigned long sp,
/* Check for user PSW */
reg = readmem_ul(sp + MEMBER_OFFSET("pt_regs", "psw"));
if (reg & S390X_PSW_MASK_PSTATE) {
+ fprintf(fp, " USER-MODE INTERRUPT FRAME, pt_regs at %llx:\n", sp);
print_ptregs(bt, sp);
return sp;
}
@@ -1750,6 +1751,7 @@ static unsigned long show_trace(struct bt_info *bt, int cnt,
unsigned long sp,
/* Check for loop (kernel_thread_starter) of second zero bc */
if (low == reg || reg == 0)
return reg;
+ fprintf(fp, " KERNEL-MODE INTERRUPT FRAME, pt_regs at %llx:\n", sp);
print_ptregs(bt, sp);
low = sp;
sp = reg;
--
2.49.0
Show replies by date