> Date: Sun, 13 Nov 2022 16:05:36 +0300 > From: Mikhail <mp39...@gmail.com> > > On Sun, Nov 13, 2022 at 04:25:00PM +1100, ja...@tubnor.net wrote: > > > > > > > -----Original Message----- > > > From: Mark Kettenis <mark.kette...@xs4all.nl> > > > Sent: Saturday, 12 November 2022 11:00 PM > > > To: ja...@tubnor.net > > > Cc: bugs@openbsd.org > > > Subject: Re: ACPI 6.4 Could not convert 1 to 4 panic > > > > > > > > > Could you boot a normal kernel (i.e. not a ramdisk kernel) without > > > Mikhail's diff and show me the output? A screen image is ok. > > > > No problems. This was a sysupgrade to the latest -current from the patched > > to unpatched GENERIC.MP kernel. > > Offending code is in SSDT.8: > > Scope (\_SB.PC00.PEG0) { > > [...] > Method (_STA, 0, NotSerialized) // _STA: Status > { > If ((PG0E == One)) > { > Return (0x0F) > } > > Return (Zero) > } > [...] > } > > PG0E is defined as External/UnknownObj, the problem is that in > DSDT we have two definition of PG0E - one is the field unit under > "DefinitionBlock" root, another one as a package under "Scope (_SB)". My > suspicion is that they meant "\PG0E" and simply forgot to define scope > explicitly, because comparing package to One doesn't make sense.
Thanks. Yes I agree with that analysis. > So the patch I sent works, but whole situation looks like not as a > bug or not implemented functionality in OpenBSD, but as a bug in the > vendor's ASL, and I am not sure what is the policy for including such > workarounds into the tree. Not sure we have a policy. But it does seem to indicate that adding an implicit conversion from Package to Integer isn't the right approach. Need to think a bit more about this, but maybe the right thing to do is having _STA() return 0 if an unexpected AML failure occurs.