Re: next: BUG: kernel NULL pointer dereference, address: 0000000000000008 - RIP: 0010:do_wp_page

From: Mark Brown
Date: Fri Jan 13 2023 - 14:45:13 EST


On Fri, Jan 13, 2023 at 03:53:44PM +0000, Matthew Wilcox wrote:

> Uh, are you compiling your kernels without debuginfo? The results
> from syzbot & 0day are much more useful:

FWIW here's a decode from arm64 (the boards I sampled all looked very
similar):

<1>Unable to handle kernel NULL pointer dereference at virtual address 0000000000000008
<1>Mem abort info:
<1> ESR = 0x0000000096000005
<1> EC = 0x25: DABT (current EL), IL = 32 bits
<1> SET = 0, FnV = 0
<1> EA = 0, S1PTW = 0
<1> FSC = 0x05: level 1 translation fault
<1>Data abort info:
<1> ISV = 0, ISS = 0x00000005
<1> CM = 0, WnR = 0
<1>user pgtable: 4k pages, 39-bit VAs, pgdp=00000000422b3000
<1>[0000000000000008] pgd=0000000000000000, p4d=0000000000000000, pud=0000000000000000
<0>Internal error: Oops: 0000000096000005 [#1] PREEMPT SMP
<4>Modules linked in:
<4>CPU: 3 PID: 58 Comm: modprobe Not tainted 6.2.0-rc3-next-20230113 #2
<4>Hardware name: Libre Computer Board ALL-H3-CC H5 (DT)
<4>pstate: 40000005 (nZcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
<4>pc : do_wp_page (include/linux/page-flags.h:251 mm/memory.c:3047 mm/memory.c:3425)
<4>lr : do_wp_page (mm/memory.c:3046 mm/memory.c:3425)
<4>sp : ffffffc00972bc50
<4>x29: ffffffc00972bc50 x28: ffffff80022e8000 x27: ffffff8002f9c060
<4>x26: 0000000000000002 x25: ffffff80022b4990 x24: 0000000000000000
<4>x23: ffffff8002f9c000 x22: 0000000000000000 x21: 0000000000000000
<4>x20: 0000000000000a55 x19: ffffffc00972bd38 x18: 0000000000000000
<4>x17: 0000000000000000 x16: 0000000000000000 x15: ffffff80022bfa00
<4>x14: ffffff8002f9c000 x13: ffffffc008b3bc88 x12: 0000007f9b02bfff
<4>x11: 0000007f9ad49fc0 x10: ffffff80022bfa0c x9 : ffffff80022bfa00
<4>x8 : ffffff80022bfa50 x7 : ffffff8002f9c000 x6 : 0000000000000000
<4>x5 : 0000000000041362 x4 : 0000007f9ad49000 x3 : ffffff80022b4990
<4>x2 : 0000000000100073 x1 : ffffff80022e8000 x0 : 0000000000000a55
<4>Call trace:
<4> do_wp_page (include/linux/page-flags.h:251 mm/memory.c:3047 mm/memory.c:3425)
<4> __handle_mm_fault (mm/memory.c:4937 mm/memory.c:5061)
<4> handle_mm_fault (mm/memory.c:5207)
<4> do_page_fault (arch/arm64/mm/fault.c:512 arch/arm64/mm/fault.c:612)
<4> do_mem_abort (arch/arm64/mm/fault.c:831)
<4> el0_da (arch/arm64/include/asm/daifflags.h:28 arch/arm64/kernel/entry-common.c:133 arch/arm64/kernel/entry-common.c:142 arch/arm64/kernel/entry-common.c:516)
<4> el0t_64_sync_handler (arch/arm64/kernel/entry-common.c:659)
<4> el0t_64_sync (arch/arm64/kernel/entry.S:584)
<0>Code: aa1503f8 b9402a60 aa1503f6 b90063e0 (f94006a0)
All code
========
0: aa1503f8 .word 0xaa1503f8
4: b9402a60 .word 0xb9402a60
8: aa1503f6 .word 0xaa1503f6
c: b90063e0 .word 0xb90063e0
10:* f94006a0 .word 0xf94006a0 <-- trapping instruction

Code starting with the faulting instruction
===========================================
0: f94006a0 .word 0xf94006a0
<4>---[ end trace 0000000000000000 ]---

The disassembly is disappointing, I didn't peer at why that is.

Attachment: signature.asc
Description: PGP signature