aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorVincent Chen <vincentc@andestech.com>2019-03-05 11:23:35 +0800
committerPalmer Dabbelt <palmer@sifive.com>2019-05-16 20:42:13 -0700
commit9a6e7af02f7fcc8c68e9d6ce167ee6ab0052cb60 (patch)
tree57c105e5e3030f8b8db5d08cc1e3c4840c961fb0 /arch
parentriscv: Add the support for c.ebreak check in is_valid_bugaddr() (diff)
downloadlinux-dev-9a6e7af02f7fcc8c68e9d6ce167ee6ab0052cb60.tar.xz
linux-dev-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')
-rw-r--r--arch/riscv/kernel/traps.c2
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;