On Mon, 21 Apr 2025, at 14:22, Warner Losh wrote:
> Please note: Gleb is on vacation this week, so I'll be coordinating
> stab-week this time. Please be sure to cc me on any problems you
> encounter.
>
> Warner
>
> On Mon, Apr 21, 2025 at 2:00 AM Gleb Smirnoff <gleb...@freebsd.org> wrote:
>>
>>   Hi FreeBSD/main users & developers:
>>
>> This is an automated email to inform you that the April 2025 stabilization 
>> week
>> started with FreeBSD/main at main-n276625-d4763484f911, which was tagged as
>> main-stabweek-2025-Apr.
>>
>> Those who want to participate in the stabilization week are encouraged to
>> update to the above revision/tag and test their systems.

thanks!

This issue actually came up last month but I had no time to investigate
then, details https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=286045

panic on startup:

Fatal trap 12: page fault while in kernel mode
cpuid = 1; apic id = 02
fault virtual address   = 0x0
fault code              = supervisor read instruction, page not present
instruction pointer     = 0x20:0x0
stack pointer           = 0x28:0xfffffe00d89c7e38
frame pointer           = 0x28:0xfffffe00d89c7e60
code segment            = base rx0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 12 (irq51: iichid0)
rdi: 0000000000000000 rsi: fffff8002b21bd40 rdx: 000000000000003e
rcx: 0000000000000700  r8: 0000000000000000 r9: 0000000000000100
rax: 0000000000000001 rbx: fffff800015a7000 rbp: fffffe00d89bde50
r10: 0000000000000000 r11: 000000000000003e r12: fffff800012ad600
r13: fffff80031e5b200 r14: fffff8002b480c00 r15: fffff800084a1000
trap number = 12
panic: page fault
cpuid = 1
time = 1745502499
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame Bxfffffe00d89bdb60
vpanic() at vpanic+0x136/frame 0xfffffe00d89bdc90
panic() at panic+0x43/frame 0xfffffe00d89bdcf0
trap_pfault() at trap_pfault+0x48d/frame 0xfffffe00d89bdd60
calltrap() at calltrap+0x8/frame 0xfffffe00d89bdd60
--- trap Oxc, rip = 0, rsp = Bxfffffe00d89bde38, rbp = 0xfffffe00d89bde60 —--
??() at 0/frame 0xfffffe00d89bde60
ithread_loop() at ithread_loop+0x266/frame 0xfffffe00d89bdef0
fork_exit() at fork_exit+0x82/frame 0xfffffe00d89bdf30
fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00d89bdf30
--- trap Oxc, rip = 0x303bd21da54a, rsp = 0x303bdb553f48, rbp = 0x303bdb553 f58
KDB: enter: panic
I thread pid 12 tid 100281 ]
Stopped at
kdb_enter+0x33: movq
$0,0x104fc22(%rip)
db >

from https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=286045 Darius
suggested guarding sc->intr_handler, and with that
https://bugs.freebsd.org/bugzilla/attachment.cgi?id=259480&action=diff
I can boot successfully again:

THREAD_SLEEPING_OK();
        error = iichid_cmd_read(sc, sc->intr_buf, sc->intr_bufsize, &actual);
        THREAD_NO_SLEEPING();
        if (error == 0) {
                if (sc->power_on) {
                        if (actual != 0)
L#635   **********      sc->intr_handler(sc->intr_ctx, sc->intr_buf,
                          actual);
                        else
                                DPRINTF(sc, "no data received\n");
                }
        } else
                DPRINTF(sc, "read error occurred: %d\n", error);

        iicbus_release_bus(parent, sc->dev);
}

I have no idea why/how we get to here with null sc->intr_handler though.

A+
Dave

Reply via email to