]> git.baikalelectronics.ru Git - kernel.git/commitdiff
riscv: Support BUG() in kernel module
authorVincent Chen <vincentc@andestech.com>
Tue, 5 Mar 2019 03:23:35 +0000 (11:23 +0800)
committerPalmer Dabbelt <palmer@sifive.com>
Fri, 17 May 2019 03:42:13 +0000 (20:42 -0700)
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>
arch/riscv/kernel/traps.c

index c34cc5418e21b4005d4befc8e23e7d86959a99f6..3d1a651dc54c71638fa3435ad6d66dee33dff6e7 100644 (file)
@@ -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;