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

Mike Rapoport rppt at kernel.org
Wed Apr 24 19:14:49 AEST 2024


On Wed, Apr 24, 2024 at 06:35:03PM +1000, Stephen Rothwell wrote:
> 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

This should fix it for now, I'll rework initialization a bit in v6
 
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 1c4be3373686..bea33bf538e9 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -176,6 +176,7 @@ config PPC
 	select ARCH_WANT_IRQS_OFF_ACTIVATE_MM
 	select ARCH_WANT_LD_ORPHAN_WARN
 	select ARCH_WANT_OPTIMIZE_DAX_VMEMMAP	if PPC_RADIX_MMU
+	select ARCH_WANTS_EXECMEM_EARLY         if EXECMEM
 	select ARCH_WANTS_MODULES_DATA_IN_VMALLOC	if PPC_BOOK3S_32 || PPC_8xx
 	select ARCH_WEAK_RELEASE_ACQUIRE
 	select BINFMT_ELF


> -- 
> Cheers,
> Stephen Rothwell

-- 
Sincerely yours,
Mike.


More information about the Linuxppc-dev mailing list