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: Bjoern A. Zeeb <bz_at_FreeBSD.org>
Date: Sat, 25 Jul 2026 11:31:16 UTC
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;
         }



>        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
...

-- 
Bjoern A. Zeeb                                                     r15:7