[Bug 285813] Panic (NULL deref) in arptimer
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 285813] Panic (NULL deref) in arptimer"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 31 Mar 2025 17:41:07 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=285813 Bug ID: 285813 Summary: Panic (NULL deref) in arptimer Product: Base System Version: 14.2-STABLE Hardware: amd64 OS: Any Status: New Severity: Affects Only Me Priority: --- Component: kern Assignee: bugs@FreeBSD.org Reporter: peter.blok@bsd4all.org Unread portion of the kernel message buffer: Fatal trap 12: page fault while in kernel mode cpuid = 2; apic id = 04 fault virtual address = 0x458 fault code = supervisor read data, page not present instruction pointer = 0x20:0xffffffff805e7410 stack pointer = 0x28:0xfffffe00109d6cf0 frame pointer = 0x28:0xfffffe00109d6d90 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, long 1, def32 0, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 2 (clock (0)) rdi: fffff8001bc27d28 rsi: 0000000000000000 rdx: 0000000000000000 rcx: 0000000000000000 r8: ffffffff8063bd40 r9: 0000000000000004 rax: 0000000000000001 rbx: 0000000000000000 rbp: fffffe00109d6d90 r10: 0000000000000001 r11: fffff800014cd000 r12: fffff8001bc27d28 r13: fffff80001562740 r14: 0000000000000000 r15: fffffe00109d6d28 trap number = 12 panic: page fault cpuid = 2 time = 1743271861 KDB: stack backtrace: #0 0xffffffff80639e1d at kdb_backtrace+0x5d #1 0xffffffff805ec471 at vpanic+0x161 #2 0xffffffff805ec303 at panic+0x43 #3 0xffffffff809a61af at trap_pfault+0x3af #4 0xffffffff8097ecd8 at calltrap+0x8 #5 0xffffffff80748432 at arptimer+0x252 #6 0xffffffff8060a249 at softclock_call_cc+0x129 #7 0xffffffff8060ba15 at softclock_thread+0xe5 #8 0xffffffff805a6a41 at fork_exit+0x81 #9 0xffffffff8097fd3e at fork_trampoline+0xe Analysis sys/kern/kern_rwlock.c:__rw_wlock_hard() ..... if (!(v & RW_LOCK_READ)) { rw_drop_critical(v, &in_critical, &extra_work); sleep_reason = WRITER; owner = lv_rw_wowner(v); if (!TD_IS_RUNNING(owner)) goto ts; Although RW_LOCK_READ is 0, RW_LOCK_READ is 1 after returning from rw_drop_critical. This causes lv_rw_owner() to return NULL Please let me know if more info is needed -- You are receiving this mail because: You are the assignee for the bug.