diff options
author | Vincent Chen | 2019-03-05 04:23:35 +0100 |
---|---|---|
committer | Palmer Dabbelt | 2019-05-17 05:42:13 +0200 |
commit | 9a6e7af02f7fcc8c68e9d6ce167ee6ab0052cb60 (patch) | |
tree | 57c105e5e3030f8b8db5d08cc1e3c4840c961fb0 /arch/riscv | |
parent | riscv: Add the support for c.ebreak check in is_valid_bugaddr() (diff) | |
download | kernel-qcow2-linux-9a6e7af02f7fcc8c68e9d6ce167ee6ab0052cb60.tar.gz kernel-qcow2-linux-9a6e7af02f7fcc8c68e9d6ce167ee6ab0052cb60.tar.xz kernel-qcow2-linux-9a6e7af02f7fcc8c68e9d6ce167ee6ab0052cb60.zip |
riscv: Support BUG() in kernel module
The kernel module is loaded into vmalloc region which is located below
to the PAGE_OFFSET. Hence the condition, pc < PAGE_OFFSET, in the
is_valid_bugaddr() will filter out all trap exceptions triggered
by kernel module. To support BUG() in kernel module, the condition is
changed to pc < VMALLOC_START.
Signed-off-by: Vincent Chen <vincentc@andestech.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
Diffstat (limited to 'arch/riscv')
-rw-r--r-- | arch/riscv/kernel/traps.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/riscv/kernel/traps.c b/arch/riscv/kernel/traps.c index c34cc5418e21..3d1a651dc54c 100644 --- a/arch/riscv/kernel/traps.c +++ b/arch/riscv/kernel/traps.c @@ -156,7 +156,7 @@ int is_valid_bugaddr(unsigned long pc) { bug_insn_t insn; - if (pc < PAGE_OFFSET) + if (pc < VMALLOC_START) return 0; if (probe_kernel_address((bug_insn_t *)pc, insn)) return 0; |