summaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorJinyang He <hejinyang@loongson.cn>2023-01-17 11:42:16 +0800
committerHuacai Chen <chenhuacai@loongson.cn>2023-01-17 11:42:16 +0800
commitdc74a9e8a8c57966a563ab078ba91c8b2c0d0a72 (patch)
treebee8ccfdc8c2d89cc9eaf5caeab25771aef92761 /mm
parentc5ac25e0d78a6f63446b8fef4d8630ccd7a2663d (diff)
downloadlinux-dc74a9e8a8c57966a563ab078ba91c8b2c0d0a72.tar.bz2
LoongArch: Add generic ex-handler unwind in prologue unwinder
When exception is triggered, code flow go handle_\exception in some cases. One of stackframe in this case as follows, high -> +-------+ | REGS | <- a pt_regs | | | | <- ex trigger | REGS | <- ex pt_regs <-+ | | | | | | low -> +-------+ ->unwind-+ When unwinder unwinds to handler_\exception it cannot go on prologue analysis. Because it is an asynchronous code flow, we should get the next frame PC from regs->csr_era rather than regs->regs[1]. At init time we copy the handlers to eentry and also copy them to NUMA-affine memory named pcpu_handlers if NUMA is enabled. Thus, unwinder cannot unwind normally. To solve this, we try to give some hints in handler_\exception and fixup unwinders in unwind_next_frame(). Reported-by: Qing Zhang <zhangqing@loongson.cn> Signed-off-by: Jinyang He <hejinyang@loongson.cn> Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Diffstat (limited to 'mm')
0 files changed, 0 insertions, 0 deletions