[jimc:dd-classmap-fix-3a] [dyndbg] 1aa71b32af: BUG:kernel_NULL_pointer_dereference,address

kernel test robot <[email protected]> Tue, 2 Jun 2026 21:09:42 +0800
Newsgroups dev.linux.lists.oe-lkp
Message-ID <[email protected]>
hi, Jim Cromie,

for this change, we reported
"[jimc:dd-shrink] [dyndbg]  1663ffb9c1: BUG:kernel_NULL_pointer_dereference,address"
in
https://lore.kernel.org/all/[email protected]/

at that time, we understood that you've already fixed it by a separate patch.

now we found the similar issue in another branch, we are not sure if this branch
is still active. so report out what we observe in our tests just FYI.


Hello,

kernel test robot noticed "BUG:kernel_NULL_pointer_dereference,address" on:

commit: 1aa71b32afe975c5402d381b16b95811b4ed16e4 ("dyndbg: resolve "protection" of class'd pr_debug")
https://github.com/jimc/linux.git dd-classmap-fix-3a

in testcase: boot

config: i386-randconfig-011-20250530
compiler: gcc-14
test machine: qemu-system-x86_64 -enable-kvm -cpu SandyBridge -smp 2 -m 32G

(please refer to attached dmesg/kmsg for entire log/backtrace)



If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-lkp/[email protected]



[    0.646324][    T1] BUG: kernel NULL pointer dereference, address: 00000000
[    0.647608][    T1] #PF: supervisor read access in kernel mode
[    0.647608][    T1] #PF: error_code(0x0000) - not-present page
[    0.647608][    T1] *pde = 00000000
[    0.647608][    T1] Oops: Oops: 0000 [#1]
[    0.647608][    T1] CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted 7.1.0-rc4-00035-g1aa71b32afe9 #1 PREEMPT(full)
[    0.647608][    T1] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
[    0.647608][    T1] EIP: strcmp (x86/lib/string_32.c:97)
[    0.647608][    T1] Code: 84 c0 75 f7 31 c0 aa 89 d8 5b 5e 5f 5d e9 ff a7 01 00 2e 8d b4 26 00 00 00 00 8d b4 26 00 00 00 00 55 89 e5 57 89 d7 56 89 c6 <ac> ae 75 08 84 c0 75 f8 31 c0 eb 04 19 c0 0c 01 5e 5f 5d e9 cf a7
All code
========
   0:	84 c0                	test   %al,%al
   2:	75 f7                	jne    0xfffffffffffffffb
   4:	31 c0                	xor    %eax,%eax
   6:	aa                   	stos   %al,%es:(%rdi)
   7:	89 d8                	mov    %ebx,%eax
   9:	5b                   	pop    %rbx
   a:	5e                   	pop    %rsi
   b:	5f                   	pop    %rdi
   c:	5d                   	pop    %rbp
   d:	e9 ff a7 01 00       	jmp    0x1a811
  12:	2e 8d b4 26 00 00 00 	cs lea 0x0(%rsi,%riz,1),%esi
  19:	00 
  1a:	8d b4 26 00 00 00 00 	lea    0x0(%rsi,%riz,1),%esi
  21:	55                   	push   %rbp
  22:	89 e5                	mov    %esp,%ebp
  24:	57                   	push   %rdi
  25:	89 d7                	mov    %edx,%edi
  27:	56                   	push   %rsi
  28:	89 c6                	mov    %eax,%esi
  2a:*	ac                   	lods   %ds:(%rsi),%al		<-- trapping instruction
  2b:	ae                   	scas   %es:(%rdi),%al
  2c:	75 08                	jne    0x36
  2e:	84 c0                	test   %al,%al
  30:	75 f8                	jne    0x2a
  32:	31 c0                	xor    %eax,%eax
  34:	eb 04                	jmp    0x3a
  36:	19 c0                	sbb    %eax,%eax
  38:	0c 01                	or     $0x1,%al
  3a:	5e                   	pop    %rsi
  3b:	5f                   	pop    %rdi
  3c:	5d                   	pop    %rbp
  3d:	e9                   	.byte 0xe9
  3e:	cf                   	iret
  3f:	a7                   	cmpsl  %es:(%rdi),%ds:(%rsi)

Code starting with the faulting instruction
===========================================
   0:	ac                   	lods   %ds:(%rsi),%al
   1:	ae                   	scas   %es:(%rdi),%al
   2:	75 08                	jne    0xc
   4:	84 c0                	test   %al,%al
   6:	75 f8                	jne    0x0
   8:	31 c0                	xor    %eax,%eax
   a:	eb 04                	jmp    0x10
   c:	19 c0                	sbb    %eax,%eax
   e:	0c 01                	or     $0x1,%al
  10:	5e                   	pop    %rsi
  11:	5f                   	pop    %rdi
  12:	5d                   	pop    %rbp
  13:	e9                   	.byte 0xe9
  14:	cf                   	iret
  15:	a7                   	cmpsl  %es:(%rdi),%ds:(%rsi)
[    0.647608][    T1] EAX: 00000000 EBX: 45489340 ECX: 00000000 EDX: 43a5414a
[    0.647608][    T1] ESI: 00000000 EDI: 43a5414a EBP: 454a3e90 ESP: 454a3e88
[    0.647608][    T1] DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068 EFLAGS: 00010217
[    0.647608][    T1] CR0: 80050033 CR2: 00000000 CR3: 0440b000 CR4: 000006d0
[    0.647608][    T1] Call Trace:
[    0.647608][    T1]  ? ddebug_add_module (dynamic_debug.c:1479 (discriminator 13))
[    0.647608][    T1]  ? blocking_notifier_chain_register (notifier.c:265 notifier.c:282)
[    0.647608][    T1]  ? dynamic_debug_init_control (dynamic_debug.c:1646)
[    0.647608][    T1]  ? dynamic_debug_init (dynamic_debug.c:1693)
[    0.647608][    T1]  ? dynamic_debug_init_control (dynamic_debug.c:1646)
[    0.647608][    T1]  ? do_one_initcall (main.c:1392)
[    0.647608][    T1]  ? __register_sysctl_init (proc/proc_sysctl.c:1436 proc/proc_sysctl.c:1465)
[    0.647608][    T1]  ? init_mm_internals (vmstat.c:2298)
[    0.647608][    T1]  ? kernel_init_freeable (main.c:1499 (discriminator 1) main.c:1692 (discriminator 1))
[    0.647608][    T1]  ? rest_init (main.c:762)
[    0.647608][    T1]  ? kernel_init (main.c:1593)
[    0.647608][    T1]  ? ret_from_fork (x86/kernel/process.c:158)
[    0.647608][    T1]  ? rest_init (main.c:762)
[    0.647608][    T1]  ? ret_from_fork_asm (x86/entry/entry_32.S:736)
[    0.647608][    T1]  ? entry_INT80_32 (x86/entry/entry_32.S:940)
[    0.647608][    T1] Modules linked in:
[    0.647608][    T1] CR2: 0000000000000000
[    0.647608][    T1] ---[ end trace 0000000000000000 ]---
[    0.647608][    T1] EIP: strcmp (x86/lib/string_32.c:97)
[    0.647608][    T1] Code: 84 c0 75 f7 31 c0 aa 89 d8 5b 5e 5f 5d e9 ff a7 01 00 2e 8d b4 26 00 00 00 00 8d b4 26 00 00 00 00 55 89 e5 57 89 d7 56 89 c6 <ac> ae 75 08 84 c0 75 f8 31 c0 eb 04 19 c0 0c 01 5e 5f 5d e9 cf a7
All code
========
   0:	84 c0                	test   %al,%al
   2:	75 f7                	jne    0xfffffffffffffffb
   4:	31 c0                	xor    %eax,%eax
   6:	aa                   	stos   %al,%es:(%rdi)
   7:	89 d8                	mov    %ebx,%eax
   9:	5b                   	pop    %rbx
   a:	5e                   	pop    %rsi
   b:	5f                   	pop    %rdi
   c:	5d                   	pop    %rbp
   d:	e9 ff a7 01 00       	jmp    0x1a811
  12:	2e 8d b4 26 00 00 00 	cs lea 0x0(%rsi,%riz,1),%esi
  19:	00 
  1a:	8d b4 26 00 00 00 00 	lea    0x0(%rsi,%riz,1),%esi
  21:	55                   	push   %rbp
  22:	89 e5                	mov    %esp,%ebp
  24:	57                   	push   %rdi
  25:	89 d7                	mov    %edx,%edi
  27:	56                   	push   %rsi
  28:	89 c6                	mov    %eax,%esi
  2a:*	ac                   	lods   %ds:(%rsi),%al		<-- trapping instruction
  2b:	ae                   	scas   %es:(%rdi),%al
  2c:	75 08                	jne    0x36
  2e:	84 c0                	test   %al,%al
  30:	75 f8                	jne    0x2a
  32:	31 c0                	xor    %eax,%eax
  34:	eb 04                	jmp    0x3a
  36:	19 c0                	sbb    %eax,%eax
  38:	0c 01                	or     $0x1,%al
  3a:	5e                   	pop    %rsi
  3b:	5f                   	pop    %rdi
  3c:	5d                   	pop    %rbp
  3d:	e9                   	.byte 0xe9
  3e:	cf                   	iret
  3f:	a7                   	cmpsl  %es:(%rdi),%ds:(%rsi)

Code starting with the faulting instruction
===========================================
   0:	ac                   	lods   %ds:(%rsi),%al
   1:	ae                   	scas   %es:(%rdi),%al
   2:	75 08                	jne    0xc
   4:	84 c0                	test   %al,%al
   6:	75 f8                	jne    0x0
   8:	31 c0                	xor    %eax,%eax
   a:	eb 04                	jmp    0x10
   c:	19 c0                	sbb    %eax,%eax
   e:	0c 01                	or     $0x1,%al
  10:	5e                   	pop    %rsi
  11:	5f                   	pop    %rdi
  12:	5d                   	pop    %rbp
  13:	e9                   	.byte 0xe9
  14:	cf                   	iret
  15:	a7                   	cmpsl  %es:(%rdi),%ds:(%rsi)


The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20260602/[email protected]



-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki