> Date: Mon, 9 Feb 2026 13:05:26 +1100 > From: Jonathan Gray <[email protected]> > > On Sun, Feb 08, 2026 at 12:18:40PM +0100, Matthieu Herrb wrote: > > On Sun, Feb 08, 2026 at 10:40:53AM +0100, Matthieu Herrb wrote: > > > Hi, > > > > > > while upgrading my X40 from 7.8 to -current, I found that the kernel > > > from current snapshots panic on boot. here's an AI powered transcript > > > of the screen shot (I did proof read it, it looks like it is correct): > > > > > > 0x1014), c1(@1 halt()), PSS > > > acpipwrres0 at acpi0: PUBS, resource for USB0, USB1, USB7 > > > acpitz0 at acpi0 > > > acpitz0: critical temperature is 95 degC > > > panic: pci_make_tag: bad request > > > Stopped at db_enter+0x4: popl %ebp > > > TID PID UID PRFLAGS PFLAGS CPU COMMAND > > > * 0 0 0 0x10000 0x200 0 swapper > > > db_enter(d1264a7c,d0f10565,1,2,d1264a80) at db_enter+0x4 > > > panic(d0d1a60b,0,d1264b10,d0949fb3,0) at panic+0x76 > > > pci_make_tag(0,c7,84,d0a0) at pci_make_tag+0x93 > > > aml_rdpciaddr(d3dd9704,d1264b20) at aml_rdpciaddr+0x173 > > > acpi_found(d3ddc744,d3d94800,d0a0d9b0,0,d3ddc744) at acpi_found+0xb7 > > > aml_walknodes(d3ddc744,0,d0a0d9b0,d3d94800,d0a0d9b0) at aml_walknodes+0x65 > > > aml_walknodes(d3ddc784,0,d0a0d9b0,d3d94800,d0a0d9b0) at aml_walknodes+0x39 > > > aml_walknodes(d3dd9704,0,d0a0d9b0,d3d94800,d0a0d9b0) at aml_walknodes+0x39 > > > aml_walknodes(d3db8584,0,d0a0d9b0,d3d94800,d0a0d9b0) at aml_walknodes+0x39 > > > aml_walknodes(d3d9c504,0,d0a0d9b0,d3d94800,0) at aml_walknodes+0x39 > > > aml_walknodes(d103c23c,0,d0a0d9b0,d3d94800) at aml_walknodes+0x39 > > > acpi_attach_common(d3d94800,f6f90) at acpi_attach_common+0x663 > > > acpi_attach(d3d9c000,d3d94800,d1264dd8) at acpi_attach+0x2c > > > config_attach(d3d9c000,d0f200b4,d1264dd8,d07e40c0) at config_attach+0x188 > > > https://www.openbsd.org/ddb.html describes the minimum info required in > > > bug > > > reports. Insufficient info makes it difficult to find and fix bugs. > > > ddb> > > > > > > > Reverting the following commit makes the machine boot fine. > > > > commit 0c90e2b526b26d9f50dde7f7712cec107cda3326 > > Author: jcs <[email protected]> > > Date: Sun Nov 23 19:56:24 2025 +0000 > > > > Make aml_rdpciaddr work better through PCI bridges > > > > When looking up the address of a PCI device from which to read for > > an opregion, walk from the root inward and each time a PCI bridge is > > encountered, read its bus info register and note its bus id. > > > > Previously we were walking outward from the device and only changing > > buses if there was a _BBN node which is not always the case. > > > > This should fix booting of late Intel Macs which have AML that tries > > to read the PCI class of the SSD after powering up the PCI port in > > its _PS0 method, waiting in a loop for it to read 1 (Mass Storage). > > Since we were previously reading the PCI class of the bridge instead > > and always getting 6, this loop would have to timeout which took > > many minutes. Now we are properly reading from the device itself > > which is on a different bus, and the PCI class reads correctly. > > > > feedback from miod > > ok kettenis > > the initial paths don't have _ADR and aren't pci devices > > aml_nodename on the nodes that take the path in the diff shows > \\ and \\_SB_ > > for example: > path[0] = \\_SB_.PCI0.IDE0 > path[1] = \\_SB_.PCI0 > path[2] = \\_SB_ > path[3] = \\ > > where n starts at 3
There are other issues with that commit. I have a diff to fix those that probably would fix this issue as well. Unfortunately my diff broke that machine that jcs@ fixed with this commit. I don't think we want to do a backout as this fixed an important issue where we would look at the wrong PCI devices when executing AML. Your fix looks reasonable. ok kettenis@ (but you might want to give jcs@ a chance to test this) > Index: sys/dev/acpi/dsdt.c > =================================================================== > RCS file: /cvs/src/sys/dev/acpi/dsdt.c,v > diff -u -p -r1.278 dsdt.c > --- sys/dev/acpi/dsdt.c 19 Jan 2026 20:37:46 -0000 1.278 > +++ sys/dev/acpi/dsdt.c 9 Feb 2026 01:06:55 -0000 > @@ -2387,7 +2387,8 @@ aml_rdpciaddr(struct aml_node *pcidev, u > addr->dev = 0; > addr->fun = 0; > } > - } > + } else > + continue; > > if (n == 0) > break; > >
