On Mon, 09 Feb 2026 at 15:56:27 +0100, Mark Kettenis wrote:
> > 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)

My MacBook still boots, ok jcs


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

Reply via email to