Subject: linux-next: boot failure after merge of the modules tree

From: Stephen Rothwell <[email-masked]>
Date: Wed, 24 Apr 2024 18:35:03 +1000

Hi all,

After merging the modules tree, today's linux-next boot (powerpc
pseries_le_defconfig) failed like this:

BUG: Kernel NULL pointer dereference at 0x00000030
Faulting instruction address: 0xc00000000057a4ec
Oops: Kernel access of bad area, sig: 11 [#1]
LE PAGE_SIZE=64K MMU=Hash SMP NR_CPUS=2048 NUMA pSeries
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.9.0-rc5-08179-ga5ea707d10dc #1
Hardware name: IBM pSeries (emulated by qemu) POWER8 (raw) 0x4d0200 0xf000004 of:SLOF,HEAD pSeries
NIP:  c00000000057a4ec LR: c0000000002cd32c CTR: c0000000002cd304
REGS: c000000004997700 TRAP: 0380   Not tainted  (6.9.0-rc5-08179-ga5ea707d10dc)
MSR:  8000000002009033 <SF,VEC,EE,ME,IR,DR,RI,LE>  CR: 84002484  XER: 20000000
CFAR: c0000000002cd328 IRQMASK: 0 
GPR00: c0000000002cd32c c0000000049979a0 c00000000163a500 0000000000010000 
GPR04: 0000000000010000 0000000000004000 0000000000000000 0000000000002cc0 
GPR08: 0000000000000030 0000000000000100 ffffffffffffffff 0000000000002000 
GPR12: c0000000002cd304 c000000002b70000 c00000000001111c 0000000000000000 
GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000 
GPR20: 0000000000000000 0000000000000000 0000000000000000 0000000000000000 
GPR24: 0000000000000000 0000000000000000 c000000002aa0940 c0000000026c0a40 
GPR28: 0000000000010000 c0000000002cd32c 0000000000000030 c0000000027d0f78 
NIP [c00000000057a4ec] execmem_alloc+0x5c/0x12c
LR [c0000000002cd32c] alloc_insn_page+0x28/0x70
Call Trace:
[c000000004997a40] [c0000000002cd32c] alloc_insn_page+0x28/0x70
[c000000004997a60] [c0000000002d07a4] __get_insn_slot+0x1cc/0x29c
[c000000004997aa0] [c00000000005c434] arch_prepare_kprobe+0xbc/0x31c
[c000000004997b20] [c0000000002d1b40] register_kprobe+0x54c/0x878
[c000000004997b90] [c000000002018828] arch_init_kprobes+0x28/0x40
[c000000004997bb0] [c00000000204b33c] init_kprobes+0x138/0x218
[c000000004997c30] [c000000000010da8] do_one_initcall+0x80/0x2f8
[c000000004997d00] [c000000002005aa8] kernel_init_freeable+0x1f8/0x520
[c000000004997de0] [c000000000011148] kernel_init+0x34/0x26c
[c000000004997e50] [c00000000000debc] ret_from_kernel_user_thread+0x14/0x1c
--- interrupt: 0 at 0x0
Code: fbe1fff8 3940ffff 38e02cc0 7c9c2378 7fa802a6 e8c91e48 f8010010 fb41ffd0 39200100 fb61ffd8 f821ff61 7fc64214 <7ca6402a> eb5e0020 837e0028 e8de0008 
---[ end trace 0000000000000000 ]---

note: swapper/0[1] exited with irqs disabled
Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b

Bisected to commit

  18da532eefc8 ("mm/execmem, arch: convert remaining overrides of module_alloc to execmem")

I have used the modules tree from next-20240423 for today.

This is a qemu boot test using:

qemu-system-ppc64 -M pseries -cpu POWER8 -m 2G -vga none -nographic -kernel ~/next/powerpc_pseries_le_defconfig/vmlinux -initrd ./ppc64le-rootfs.cpio.gz

-- 
Cheers,
Stephen Rothwell