mirror of https://github.com/crash-utility/crash
s390x: Fix "bt -f/-F" command fail with seek error
Kernel commit ce3dc447493ff ("s390: add support for virtually mapped kernel stacks") renamed "panic_task" to "nodat_stack" in the struct lowcore, which leads a wrong stack base/top calculation. As a result, the "bt -f/-F" may fail with the seek error: crash> bt -f PID: 3359 TASK: 28b01a09400 CPU: 0 COMMAND: "runtest.sh" LOWCORE INFO: ... -general registers: 0x0000000034dd9140 0x0000039600000002 0x00000396cad7dfa0 0x0000028b03ba5000 ... 0000028c6e9fffd8: 0000000000000000 0000000000000000 0000028c6e9fffe8: 0000000000000000 0000000000000000 0000028c6e9ffff8: 0000000000000000bt: seek error: kernel virtual address: 28c6ea00000 type: "readmem_ul" Signed-off-by: Tao Liu <ltao@redhat.com>
This commit is contained in:
parent
321e1e8545
commit
5218919ec1
3
s390x.c
3
s390x.c
|
@ -1797,6 +1797,9 @@ static void s390x_back_trace_cmd(struct bt_info *bt)
|
||||||
cpu, lowcore, &low, &high);
|
cpu, lowcore, &low, &high);
|
||||||
sp = show_trace(bt, cnt, sp, low, high);
|
sp = show_trace(bt, cnt, sp, low, high);
|
||||||
}
|
}
|
||||||
|
if (MEMBER_EXISTS("lowcore", "nodat_stack"))
|
||||||
|
get_int_stack("nodat_stack", cpu, lowcore, &low, &high);
|
||||||
|
else
|
||||||
get_int_stack("panic_stack", cpu, lowcore, &low, &high);
|
get_int_stack("panic_stack", cpu, lowcore, &low, &high);
|
||||||
sp = show_trace(bt, cnt, sp, low, high);
|
sp = show_trace(bt, cnt, sp, low, high);
|
||||||
get_int_stack("async_stack", cpu, lowcore, &low, &high);
|
get_int_stack("async_stack", cpu, lowcore, &low, &high);
|
||||||
|
|
Loading…
Reference in New Issue