----- Original Message ----- > Hi Dave, > > Sorry, the restart stack patch is missing a check if the restart_stack > symbols exists. Without this check, we get error messages for older > kernels. Here the updated patch. > > Sorry for the noise. > > Signed-off-by: Michael Holzheu <holzheu@xxxxxxxxxxxxxxxxxx> OK -- I had checked it out only a live system, but that code path wouldn't be exercised in that case, so I'll add in the symbol_exists() check to s390x_back_trace_cmd(). Also, the "if (!stack_addr)" check in get_int_stack() is an impossibility, right? Thanks, Dave > --- > s390x.c | 17 ++++++++++++++--- > 1 file changed, 14 insertions(+), 3 deletions(-) > > --- a/s390x.c > +++ b/s390x.c > @@ -825,9 +825,16 @@ static void get_int_stack(char *stack_na > unsigned long stack_addr; > > *start = *end = 0; > - if (!MEMBER_EXISTS("_lowcore", stack_name)) > - return; > - stack_addr = ULONG(lc + MEMBER_OFFSET("_lowcore", stack_name)); > + if (strcmp(stack_name, "restart_stack") == 0) { > + stack_addr = symbol_value("restart_stack"); > + if (!stack_addr) > + return; > + stack_addr = readmem_ul(stack_addr); > + } else { > + if (!MEMBER_EXISTS("_lowcore", stack_name)) > + return; > + stack_addr = ULONG(lc + MEMBER_OFFSET("_lowcore", stack_name)); > + } > if (stack_addr == 0) > return; > *start = stack_addr - INT_STACK_SIZE; > @@ -993,6 +1000,10 @@ static void s390x_back_trace_cmd(struct > } > s390x_print_lowcore(lowcore,bt,1); > fprintf(fp,"\n"); > + if (symbol_exists("restart_stack")) { > + get_int_stack("restart_stack", lowcore, &low, &high); > + sp = show_trace(bt, cnt, sp, low, high); > + } > get_int_stack("panic_stack", lowcore, &low, &high); > sp = show_trace(bt, cnt, sp, low, high); > get_int_stack("async_stack", lowcore, &low, &high); -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility