Re: amd64 boot crash for lack of being set up to use of rtw89; linuxkpi calls on the stack, 0xdeadc0dedeadc13e and such involved, devfs_ioctl with dsw=0xdeadc0dedeadc0de

From: Mark Millard <marklmi_at_yahoo.com>
Date: Sat, 25 Jul 2026 16:33:09 UTC
On 7/25/26 04:31, Bjoern A. Zeeb wrote:
> On Fri, 24 Jul 2026, Mark Millard wrote:
> 
> 
> ....
>> /home/pkgbuild/worktrees/main/sys/compat/linuxkpi/common/include/
>> linux/device.h:376
>> No locals.
>> #20 pci_dev_put (pdev=0xdeadc0dedeadc0de)
>>    at
>> /home/pkgbuild/worktrees/main/sys/compat/linuxkpi/common/include/
>> linux/pci.h:474
>> No locals.
>> #21 lkpi_pci_dev_release (dev=0xfffff8014e842a00)
>>    at
>> /home/pkgbuild/worktrees/main/sys/compat/linuxkpi/common/src/
>> linux_pci.c:374
> 
> That would be my recent change I assume.
> 
> 
> Can you test this?
> 
> % git diff
> diff --git sys/compat/linuxkpi/common/src/linux_pci.c sys/compat/
> linuxkpi/common/src/linux_pci.c
> index a49254425b5d..b1c28a188b94 100644
> --- sys/compat/linuxkpi/common/src/linux_pci.c
> +++ sys/compat/linuxkpi/common/src/linux_pci.c
> @@ -370,7 +370,7 @@ lkpi_pci_dev_release(struct device *dev)
>          */
> 
>         /* Clear the hierarchy recursively to root. */
> -       if (pdev->bus->self != pdev) {
> +       if (pdev->bus->self != pdev && pdev->bus->self != NULL) {
>                 pci_dev_put(pdev->bus->self);
>                 pdev->bus->self = NULL;
>         }
> 

See later below.

> 
> 
>>        pdev = 0xfffff8014e842a00
>> #22 0xffffffff80eed1c8 in linux_kobject_release (kref=<optimized out>)
>>    at
>> /home/pkgbuild/worktrees/main/sys/compat/linuxkpi/common/src/
>> linux_kobject.c:186
>>        kobj = 0xfffff8014e842a50
>>        name = 0xfffff80107bcd670 "rtw890"
>> #23 0xffffffff80ef11ea in kref_put (kref=0xdeadc0dedeadc13e,
>>    rel=<optimized out>)
>>    at
>> /home/pkgbuild/worktrees/main/sys/compat/linuxkpi/common/include/
>> linux/kref.h:73
>> No locals.
>> #24 kobject_put (kobj=0xfffff8014e842a50)
>>    at
>> /home/pkgbuild/worktrees/main/sys/compat/linuxkpi/common/include/
>> linux/kobject.h:113
>> No locals.
>> #25 put_device (dev=0xfffff8014e842a00)
>>    at
>> /home/pkgbuild/worktrees/main/sys/compat/linuxkpi/common/include/
>> linux/device.h:376
>> No locals.
>> #26 linux_pci_attach_device (dev=<optimized out>, pdrv=<optimized out>,
>>    id=<optimized out>, pdev=0xfffff8014e842a00)
>>    at
>> /home/pkgbuild/worktrees/main/sys/compat/linuxkpi/common/src/
>> linux_pci.c:744
>>        rid = 2304
>>        parent = <optimized out>
>>        isdrm = <optimized out>
>>        error = <optimized out>
>>        rle = <optimized out>
>>        pbus = <optimized out>
>>        ppbus = <optimized out>
>> #27 0xffffffff80c536c6 in DEVICE_ATTACH (dev=0xfffff8010799a800)
>>    at ./device_if.h:195
>>        _m = <optimized out>
>>        rc = <optimized out>
>> #28 device_attach (dev=0xfffff8010799a800)
>>    at /home/pkgbuild/worktrees/main/sys/kern/subr_bus.c:2630
>>        attachentropy = 32965
>>        saved_vnet = 0x0
>>        attachtime = 1943114510
>>        error = <optimized out>
>> #29 0xffffffff80c53255 in device_probe_and_attach
>> (dev=0xfffff8014e842a00,
>>    dev@entry=0xfffff8010799a800)
>>    at /home/pkgbuild/worktrees/main/sys/kern/subr_bus.c:2579
> ...
> 

I built a new kernel pair (debug and non-debug) based on updating the
pkgbase /usr/src/ the system is based on.

Booting the debug build still failed. The deadc0de based value that is
assocaited with the longest lasting stack frame from with such a value
is reported is still in the dsw for:

#35 0xffffffff80a7ac9c in devfs_ioctl (ap=0xfffffe02a599ec40)
    at /usr/src/sys/fs/devfs/devfs_vnops.c:964
        dev = 0xfffff801072a1800
        ref = 0
        vp = 0xfffff8014c11a6e0
        com = 2157462540
        td = 0xfffff80149a31780
        dsw = 0xdeadc0dedeadc0de
        error = <optimized out>
        fgn = <optimized out>
        p = <optimized out>
        i = <optimized out>
        sess = <optimized out>
        vpold = <optimized out>

So I would expect #0 .. #34 to all be after that specific problem.

The new gdb report follows . . .

Reading symbols from /boot/kernel.amd64-usr_src-DEBUG/kernel...
Reading symbols from
/usr/lib/debug//boot/kernel.amd64-usr_src-DEBUG/kernel.debug...
. . .
Reading symbols from /boot/kernel.amd64-usr_src-DEBUG/smbus.ko...
Reading symbols from
/usr/lib/debug//boot/kernel.amd64-usr_src-DEBUG/smbus.ko.debug...
__curthread () at /usr/src/sys/amd64/include/pcpu_aux.h:57
57              __asm("movq %%gs:%c1,%0" : "=r" (td)
(kgdb) #0  __curthread () at /usr/src/sys/amd64/include/pcpu_aux.h:57
        td = <optimized out>
#1  doadump (textdump=textdump@entry=0)
    at /usr/src/sys/kern/kern_shutdown.c:399
        error = 0
        coredump = <optimized out>
#2  0xffffffff804c77da in db_dump (dummy=<optimized out>,
    dummy2=<optimized out>, dummy3=<optimized out>, dummy4=<optimized out>)
    at /usr/src/sys/ddb/db_command.c:596
        error = <optimized out>
#3  0xffffffff804c768a in db_command (last_cmdp=<optimized out>,
    cmd_table=<optimized out>, dopager=true)
    at /usr/src/sys/ddb/db_command.c:508
        modif = "\000Bځ\377\377\377\377\n", '\000' <repeats 15 times>,
"x\000\000\000\000\000\000\000\b\000\000\0000\000\000\000\340♥\002\376\377\377`♥\002\376\377\377\375(\321f\355\177)[
㙥\002\376\377\377D\236L\200\377\377\377\377\017", '\000' <repeats 15
times>,
"\020\220\275\201\377\377\377\377\000\000\000\000\000\000\000\000\200\027\243I\001\370\377\377"
        addr = -2134482909
        count = -1
        cmd = 0xffffffff81a16ff8 <db_cmds+616>
        have_addr = <optimized out>
        t = <optimized out>
        result = <optimized out>
#4  0xffffffff804c72ad in db_command_loop ()
    at /usr/src/sys/ddb/db_command.c:555
No locals.
#5  0xffffffff804caee0 in db_trap (type=<optimized out>, code=<optimized
out>)
    at /usr/src/sys/ddb/db_main.c:267
        jb = {{_jb = {0, -2187654995128, -2187654994976, -8790562629760,
              -2120123568, -2187654995104, -2187654994432, -2142458264,
              -2187654995008, -2136782033, -2116402656, 3}}}
        bkpt = false
        watchpt = false
        prev_jb = 0x0
        why = <optimized out>
#6  0xffffffff80c66b1f in kdb_trap (type=type@entry=3, code=code@entry=0,
    tf=tf@entry=0xfffffe02a599e600) at /usr/src/sys/kern/subr_kdb.c:790
        __pc = 0x0
        __pc = 0x0
        other_cpus = {__bits = {18446744071583149600, 18446741886054557328,
            4294967282, 5, 2778326384, 0, 3545567873046937600,
            18446744071575110192, 18446744071582117664,
18446744071582540027,
            0, 12, 18446741886054557056, 0, 18446741886054559552,
            11100633178600}}
        be = 0xffffffff81a17b50 <ddb_dbbe>
        intr = 70
        did_stop_cpus = <optimized out>
        handled = <optimized out>
#7  0xffffffff811a0335 in trap (frame=<optimized out>)
    at /usr/src/sys/amd64/amd64/trap.c:702
        __pc = 0x0
        __pc = 0x0
        __pc = 0x0
        ksi = {ksi_link = {tqe_next = 0x1, tqe_prev = 0xfffff82ae17f6f00},
          ksi_info = {si_signo = 5, si_errno = 0, si_code = -1, si_pid = 0,
            si_uid = 2778326608, si_status = -510,
            si_addr = 0xffffffff80c708ab <_vprintf+139>, si_value = {
              sival_int = 5, sival_ptr = 0xffffffff00000005, sigval_int
= 5,
              sigval_ptr = 0xffffffff00000005}, _reason = {_fault = {
                _trapno = 0}, _timer = {_timerid = 0, _overrun = 0},
_mesgq = {
                _mqd = 0}, _poll = {_band = 0}, _capsicum = {_syscall = 0},
              __spare__ = {__spare1__ = 0, __spare2__ = {-1516640848, -510,
                  128, 0, -1516640848, -510, 128}}}}, ksi_flags =
977421312,
          ksi_sigq = 0x696e6170203a7265}
        signo = 0
        ucode = 256
        td = <optimized out>
        p = 0xfffffe0366641040
        dr6 = 0
        type = 3
        addr = <optimized out>
        pf = <optimized out>
        i = <optimized out>
#8  <signal handler called>
No locals.
#9  kdb_enter (why=<optimized out>, msg=<optimized out>)
    at /usr/src/sys/kern/subr_kdb.c:556
No locals.
#10 0xffffffff80c10dc9 in vpanic (fmt=<optimized out>,
    ap=ap@entry=0xfffffe02a599e830) at /usr/src/sys/kern/kern_shutdown.c:962
        buf = "general protection fault", '\000' <repeats 231 times>
        __pc = 0x0
        __pc = 0x0
        __pc = 0x0
        other_cpus = {__bits = {4294934527, 0 <repeats 15 times>}}
        td = 0xfffff80149a31780
        bootopt = <optimized out>
        newpanic = <optimized out>
#11 0xffffffff80c10c43 in panic (
    fmt=0xffffffff81da4260 <cnputs_mtx> "\241@)\201\377\377\377\377")
    at /usr/src/sys/kern/kern_shutdown.c:887
        ap = {{gp_offset = 16, fp_offset = 48,
            overflow_arg_area = 0xfffffe02a599e860,
            reg_save_area = 0xfffffe02a599e800}}
#12 0xffffffff811a065f in trap_fatal (frame=0xfffffe02a599e880,
    eva=<optimized out>) at /usr/src/sys/amd64/amd64/trap.c:1031
        type = <optimized out>
#13 <signal handler called>
No locals.
#14 0xffffffff80ef1845 in atomic_fetchadd_int (p=0xdeadc0dedeadc13e,
    v=4294967295) at /usr/src/sys/amd64/include/atomic.h:194
No locals.
#15 refcount_releasen (count=0xdeadc0dedeadc13e, n=1)
    at /usr/src/sys/sys/refcount.h:149
        old = <optimized out>
#16 refcount_release (count=0xdeadc0dedeadc13e)
    at /usr/src/sys/sys/refcount.h:171
No locals.
#17 kref_put (kref=0xdeadc0dedeadc13e, rel=<optimized out>)
    at /usr/src/sys/compat/linuxkpi/common/include/linux/kref.h:72
No locals.
#18 kobject_put (kobj=0xdeadc0dedeadc12e)
    at /usr/src/sys/compat/linuxkpi/common/include/linux/kobject.h:113
No locals.
#19 put_device (dev=0xdeadc0dedeadc0de)
    at /usr/src/sys/compat/linuxkpi/common/include/linux/device.h:376
No locals.
#20 pci_dev_put (pdev=0xdeadc0dedeadc0de)
    at /usr/src/sys/compat/linuxkpi/common/include/linux/pci.h:474
No locals.
#21 lkpi_pci_dev_release (dev=0xfffff8015a144a00)
    at /usr/src/sys/compat/linuxkpi/common/src/linux_pci.c:374
        pdev = 0xfffff8015a144a00
#22 0xffffffff80eed308 in linux_kobject_release (kref=<optimized out>)
    at /usr/src/sys/compat/linuxkpi/common/src/linux_kobject.c:186
        kobj = 0xfffff8015a144a50
        name = 0xfffff82ae1802610 "rtw890"
#23 0xffffffff80ef132a in kref_put (kref=0xdeadc0dedeadc13e,
    rel=<optimized out>)
    at /usr/src/sys/compat/linuxkpi/common/include/linux/kref.h:73
No locals.
#24 kobject_put (kobj=0xfffff8015a144a50)
    at /usr/src/sys/compat/linuxkpi/common/include/linux/kobject.h:113
No locals.
#25 put_device (dev=0xfffff8015a144a00)
    at /usr/src/sys/compat/linuxkpi/common/include/linux/device.h:376
No locals.
#26 linux_pci_attach_device (dev=<optimized out>, pdrv=<optimized out>,
    id=<optimized out>, pdev=0xfffff8015a144a00)
    at /usr/src/sys/compat/linuxkpi/common/src/linux_pci.c:744
        rid = 2304
        parent = <optimized out>
        isdrm = <optimized out>
        error = <optimized out>
        rle = <optimized out>
        pbus = <optimized out>
        ppbus = <optimized out>
#27 0xffffffff80c536c6 in DEVICE_ATTACH (dev=0xfffff801079af800)
    at ./device_if.h:198
        _m = <optimized out>
        rc = <optimized out>
#28 device_attach (dev=0xfffff801079af800) at
/usr/src/sys/kern/subr_bus.c:2630
        attachentropy = 32965
        saved_vnet = 0x0
        attachtime = 2379739734
        error = <optimized out>
#29 0xffffffff80c53255 in device_probe_and_attach (dev=0xfffff8015a144a00,
    dev@entry=0xfffff801079af800) at /usr/src/sys/kern/subr_bus.c:2579
        error = -559038242
#30 0xffffffff80892e32 in pci_driver_added (dev=0xfffff801079af900,
    driver=<optimized out>) at /usr/src/sys/dev/pci/pci.c:4829
        numdevs = 1
        devlist = 0xfffff8015a12b630
        i = 0
        child = 0xfffff801079af800
        dinfo = 0xfffff8033845e400
#31 0xffffffff80c50b19 in BUS_DRIVER_ADDED (_dev=0xfffff801079af900,
    _driver=0xffffffff83b007b0 <_pci_rtw89_8851be_id_table_driver>)
    at ./bus_if.h:217
        _m = <optimized out>
#32 devclass_driver_added (dc=dc@entry=0xfffff8010198e500,
    driver=0xffffffff83b007b0 <_pci_rtw89_8851be_id_table_driver>)
    at /usr/src/sys/kern/subr_bus.c:670
        i = 9
        parent = <optimized out>
#33 0xffffffff80c59cab in device_do_deferred_actions ()
    at /usr/src/sys/kern/subr_bus.c:5715
        dc = <optimized out>
        dl = <optimized out>
#34 0xffffffff80c595f6 in devctl2_ioctl (cdev=<optimized out>,
cmd=2157462540,
    data=0xfffff8015a19f100 "", fflag=<optimized out>,
td=0xfffff80149a31780)
    at /usr/src/sys/kern/subr_bus.c:6013
        dev = 0x2
        error = -559038242
        old = <optimized out>
        req = <optimized out>
#35 0xffffffff80a7ac9c in devfs_ioctl (ap=0xfffffe02a599ec40)
    at /usr/src/sys/fs/devfs/devfs_vnops.c:964
        dev = 0xfffff801072a1800
        ref = 0
        vp = 0xfffff8014c11a6e0
        com = 2157462540
        td = 0xfffff80149a31780
        dsw = 0xdeadc0dedeadc0de
        error = <optimized out>
        fgn = <optimized out>
        p = <optimized out>
        i = <optimized out>
        sess = <optimized out>
        vpold = <optimized out>
#36 0xffffffff81278951 in VOP_IOCTL_APV (
    vop=0xffffffff81aabfe0 <devfs_specops>, a=a@entry=0xfffffe02a599ec40)
    at vnode_if.c:1148
        rc = <optimized out>
#37 0xffffffff80d3ea0f in VOP_IOCTL (vp=<optimized out>,
    command=<optimized out>, data=<optimized out>, fflag=<optimized out>,
    cred=<optimized out>, td=<optimized out>) at ./vnode_if.h:751
        a = <optimized out>
#38 0xffffffff80d3ea0f in vn_ioctl (fp=<optimized out>, com=<optimized
out>,
    data=0xffffffff8132c600, active_cred=0xffffffff,
    td=0xffffffff81ad7430 <lock_class_rm_sleepable>)
        size = -2118694744
        vp = 0xfffff8014c11a6e0
        error = <optimized out>
        bmarg = <optimized out>
#39 0xffffffff80a7b3be in devfs_ioctl_f (fp=0xfffff8015a144a00,
    com=16045693110842147134, data=0xffffffff8132c600, cred=0xffffffff,
    td=0xffffffff81ad7430 <lock_class_rm_sleepable>)
    at /usr/src/sys/fs/devfs/devfs_vnops.c:895
        fpop = 0x0
        error = <optimized out>
#40 0xffffffff80c95dbd in fo_ioctl (fp=0xfffff8014d5e3a50, com=2157462540,
    data=0xfffff8015a19f100, active_cred=0xffffffff, td=0xfffff80149a31780)
    at /usr/src/sys/sys/file.h:391
No locals.
#41 kern_ioctl (td=td@entry=0xfffff80149a31780, fd=<optimized out>,
    com=com@entry=2157462540, data=data@entry=0xfffff8015a19f100 "")
    at /usr/src/sys/kern/sys_generic.c:834
        tmp = -1
        fdp = 0xfffffe036b7e6c90
        locked = 0
        fp = 0xfffff8014d5e3a50
        error = <optimized out>
        f_flag = 0
#42 0xffffffff80c95a9f in sys_ioctl (td=0xfffff80149a31780,
    uap=0xfffff80149a31ba8) at /usr/src/sys/kern/sys_generic.c:739
        smalldata = "\370\022\345\201\377\377\377\377\002", '\000'
<repeats 15 times>, "\005\214s\341*\370\377\377\a", '\000' <repeats 15
times>,
"\375(\321f\355\177)[\200\027\243I\001\370\377\377\000\000\000\000\000\000\000\000@\020df\003\376\377\377@\020df\003\376\377\377\220E\254\201\377\377\377\377\360홥\002\376\377\377\271+Ȁ\377\377\377\377\001\000\000\000\000\000\000\000\220E\254\201\377\377\377\377"
        arg = -2115693832
        com = 2157462540
        size = 152
        data = 0xfffff8015a19f100 ""
        error = <optimized out>
#43 0xffffffff811a13ec in syscallenter (td=0xfffff80149a31780)
    at /usr/src/sys/amd64/amd64/../../kern/subr_syscall.c:193
        se = 0xffffffff81ac0df0 <sysent+1728>
        p = 0xfffffe0366641040
        sa = 0xfffff80149a31b98
        error = <optimized out>
        sy_thr_static = <optimized out>
        traced = <optimized out>
#44 amd64_syscall (td=0xfffff80149a31780, traced=0)
    at /usr/src/sys/amd64/amd64/trap.c:1278
        ksi = {ksi_link = {tqe_next = 0xfffffe02a599ee70,
            tqe_prev = 0xffffffff80c82bb9 <userret+121>}, ksi_info = {
            si_signo = -512872536, si_errno = -2006, si_code = 1, si_pid
= 0,
            si_uid = 1724983549, si_status = 1529446381,
            si_addr = 0xfffff80149a31780, si_value = {sival_int =
-1815095077,
              sival_ptr = 0xa1893cfd8db, sigval_int = -1815095077,
              sigval_ptr = 0xa1893cfd8db}, _reason = {_fault = {
                _trapno = 1724983549}, _timer = {_timerid = 1724983549,
                _overrun = 1529446381}, _mesgq = {_mqd = 1724983549},
_poll = {
                _band = 6568922189105539325}, _capsicum = {
                _syscall = 1724983549}, __spare__ = {
                __spare1__ = 6568922189105539325, __spare2__ = {1235425152,
                  -2047, 12, 0, -1516638416, -510, -2129001875}}}},
          ksi_flags = -2115693832, ksi_sigq = 0x2}
#45 <signal handler called>
No locals.
#46 0x00000a1894a4148a in ?? ()
No symbol table info available.
Backtrace stopped: Cannot access memory at address 0xa18914c21e8


-- 
===
Mark Millard
marklmi at yahoo.com