* RE: NO_RETURN_VALUE w/ 20040715
@ 2004-08-23 20:22 Moore, Robert
[not found] ` <37F890616C995246BE76B3E6B2DBE05501C71E7A-sBd4vmA9Se5Qxe9IK+vIArfspsVTdybXVpNB7YpNyf8@public.gmane.org>
0 siblings, 1 reply; 11+ messages in thread
From: Moore, Robert @ 2004-08-23 20:22 UTC (permalink / raw)
To: Alex Williamson; +Cc: acpi-devel
We are going to update the ACPI spec to something like this:
* For the following operators, the data type of the first operand
dictates both the required type of the second operand and the type of
the result object. (The second operator is converted, if necessary, to
match the type of the first operand.)
Concatenate
LEqual
LGreater
LGreaterEqual
LLess
LLessEqual
LNotEqual
> -----Original Message-----
> From: Alex Williamson [mailto:alex.williamson-VXdhtT5mjnY@public.gmane.org]
> Sent: Friday, August 20, 2004 4:18 PM
> To: Moore, Robert
> Cc: acpi-devel
> Subject: RE: [ACPI] NO_RETURN_VALUE w/ 20040715
>
> Bob,
>
> Thanks once again for the quick and thorough analysis. I'll feed
> this into our ACPI folks here and see if they have a strong opinion or
> can just avoid the problem. Thanks,
>
> Alex
>
> On Fri, 2004-08-20 at 14:07 -0700, Moore, Robert wrote:
> > This is an error during the execution of this operator in SSTA:
> >
> > If (LEqual (Local0, 0x00))
> > {
> >
> > It turns out that Local0 contains a Buffer (BSTR), and the statement
is
> > trying to compare it to an Integer. This causes an operand type
> > exception, which then results in a no-return-value exception.
> >
> > We have recently upgraded LEqual to handle buffers and strings; and
it
> > is implemented according to the rules below, which would appear to
> > require that both operands be of the same type.
> >
> > It is not clear to me whether the logical operators should support
> > "implicit type conversion". This will require additional
investigation.
> >
> >
> >
> > From the ACPI spec:
> >
> > 17.5.60 LEqual (Logical Equal)
> > Syntax
> > LEqual (Source1, Source2) => Boolean
> >
> > Arguments
> > Source1 and Source2 must evaluate to the same data type and both
must be
> > integers, strings, or buffers.
> >
> > Description
> > If the values are equal, True is returned; otherwise, False is
returned.
> > For integers, a numeric compare is performed. For strings and
buffers,
> > True is returned only if both lengths are the same and the result of
a
> > byte-wise compare indicates exact equality.
> >
> >
> >
> > exdump-0520 [08] ExDumpOperands : ************* Operand
Stack
> > Contents (Opcode [LEqual], 2 Operands)
> > exdump-0192 [08] ExDumpOperand : 004FE3B4 Integer
> > 0000000000000000
> > exdump-0192 [08] ExDumpOperand : 004FE414 Buffer len 1 @
> > 004FD354
> > Buffer Contents: 00
> > exdump-0537 [08] ExDumpOperands : ************* Stack dump
from
> > dswexec(510), after ExResolveOperands
> > exoparg2-0668 [09] ExOpcode_2A_0T_1R : ----Entry LEqual
> > utobject-0160 [10] UtCreateInternalObject: ----Entry Integer
> > utobject-0343 [11] UtAllocateObjectDescDb: ----Entry
> > utalloc-0231 [11] UtAcquireFromCache : Object 004FFAA4 from
Operand
> > Object Cache
> > utobject-0360 [11] UtAllocateObjectDescDb: 004FFAA4 Size 28
> > utobject-0362 [11] UtAllocateObjectDescDb: ----Exit- 004FFAA4
> > utobject-0208 [10] UtCreateInternalObject: ----Exit- 004FFAA4
> > utdelete-0719 [10] UtRemoveReference : ----Entry 004FFAA4
> > utdelete-0742 [10] UtRemoveReference : Obj 004FFAA4 Refs=1
> > utdelete-0515 [11] UtUpdateObjectReferenc: ----Entry 004FFAA4
> > utmisc-1212 [12] UtCreateUpdateState : ----Entry 004FFAA4
> > utalloc-0231 [12] UtAcquireFromCache : Object 004FEA44 from
State
> > Object Cache
> > utmisc-1229 [12] UtCreateUpdateState : ----Exit- 004FEA44
> > utmisc-1336 [12] UtDeleteGenericState : ----Entry
> > utmisc-1340 [12] UtDeleteGenericState : ----Exit-
> > utdelete-0431 [11] UtUpdateRefCount : Obj 004FFAA4 Refs=0,
> > [Decremented]
> > utdelete-0151 [12] UtDeleteInternalObj : ----Entry 004FFAA4
> > utdelete-0324 [12] UtDeleteInternalObj : Deleting Object 004FFAA4
> > [Integer]
> > utobject-0382 [13] UtDeleteObjectDesc : ----Entry 004FFAA4
> > utobject-0397 [13] UtDeleteObjectDesc : ----Exit-
> > utdelete-0327 [12] UtDeleteInternalObj : ----Exit-
> > utmisc-1096 [12] UtPopGenericState : ----Entry
> > utmisc-1109 [12] UtPopGenericState : ----Exit- 00000000
> > utdelete-0655 [11] UtUpdateObjectReferenc: ----Exit- AE_OK
> > utdelete-0750 [10] UtRemoveReference : ----Exit-
> > exoparg2-0756 [09] ExOpcode_2A_0T_1R : ----Exit-
****Exception****:
> > AE_AML_OPERAND_TYPE
> >
> > > -----Original Message-----
> > > From: acpi-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org [mailto:acpi-devel-
> > > admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] On Behalf Of Alex Williamson
> > > Sent: Friday, August 20, 2004 1:12 PM
> > > To: acpi-devel
> > > Subject: [ACPI] NO_RETURN_VALUE w/ 20040715
> > >
> > >
> > > I've got one more new error going on with the new ACPI. On
bootup
> > of
> > > an hp rx8620 (sx1000 based ia64 system), I'm now getting a number
of
> > > these:
> > >
> > > dswstate-0273 [18] ds_result_pop_from_bot: No result objects!
> > > State=e000072000095030
> > > dsutils-0526 [18] ds_create_operand : Missing or null operand,
> > > AE_AML_NO_RETURN_VALUE
> > > psparse-1133: *** Error: Method execution failed
> > > [\_SB_.N000.S000.IOC0.L000.SSTA] (Node e0000703fef6d730),
> > > AE_AML_NO_RETURN_VALUE
> > > psparse-1133: *** Error: Method execution failed
> > > [\_SB_.N000.S000.IOC0.L000.SBF0._STA] (Node e0000703fef6f130),
> > > AE_AML_NO_RETURN_VALUE
> > > uteval-0158: *** Error: Method execution failed
> > > [\_SB_.N000.S000.IOC0.L000.SBF0._STA] (Node e0000703fef6f130),
> > > AE_AML_NO_RETURN_VALUE
> > >
> > > This did not happen w/ the previous ACPI code so I'd like to get a
> > feel
> > > for whether this looks like an interpreter bug or an AML bug.
The
> > > disassembled DSDT for the _STA and SSTA methods is below. Looks
to me
> > > like there's no way out of the SSTA method w/o a return, but then
I
> > > don't really know AML. I can provide the entire DSDT if this
isn't
> > > sufficient. Thanks,
> > >
> > > Alex
> > >
> > > Method (SSTA, 0, NotSerialized)
> > > {
> > > Acquire (MCTX, 0xFFFF)
> > > Store (0x0F, CSTS)
> > > If (LNot (LEqual (PRES (), Ones)))
> > > {
> > > Store (0x00, CSTS)
> > > Release (MCTX)
> > > Return (ToInteger (CSTS, Local0))
> > > }
> > > If (LNot (LEqual (PCHK (), Ones)))
> > > {
> > > Store (0x00, GOOD)
> > > Store (0x00, LIVE)
> > > Store (0x00, SEEN)
> > > Release (MCTX)
> > > Return (ToInteger (CSTS, Local0))
> > > }
> > > If (LEqual (RC, 0x00))
> > > {
> > > Store (BSTR, Local0)
> > > }
> > > Else
> > > {
> > > Store (0x00, Local0)
> > > }
> > > If (LEqual (Local0, 0x00))
> > > {
> > > Store (0x01, GOOD)
> > > }
> > > Release (MCTX)
> > > Return (ToInteger (CSTS, Local0))
> > > }
> > > ...
> > > Device (SBF0)
> > > {
> > > ...
> > > Method (_STA, 0, NotSerialized)
> > > {
> > > Return (^^SSTA ())
> > > }
> > > }
> > >
> > > --
> > > Alex Williamson HP Linux & Open Source
Lab
> > >
> > >
> > >
> > > -------------------------------------------------------
> > > SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank
Media
> > > 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
> > > Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
> > > http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
> > > _______________________________________________
> > > Acpi-devel mailing list
> > > Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> > > https://lists.sourceforge.net/lists/listinfo/acpi-devel
> >
> --
> Alex Williamson HP Linux & Open Source Lab
-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
^ permalink raw reply [flat|nested] 11+ messages in thread* RE: NO_RETURN_VALUE w/ 20040715
@ 2004-08-23 22:05 Moore, Robert
0 siblings, 0 replies; 11+ messages in thread
From: Moore, Robert @ 2004-08-23 22:05 UTC (permalink / raw)
To: Nate Lawson; +Cc: Alex Williamson, acpi-devel
He's saying that we should use the existing implicit conversion rules,
rather than make up new ones. It's already complex.
I'm not willing to overhaul the
> conversion rules yet again (which is what he's proposing)
Bob
> -----Original Message-----
> From: Nate Lawson [mailto:nate-Y6VGUYTwhu0@public.gmane.org]
> Sent: Monday, August 23, 2004 3:01 PM
> To: Moore, Robert
> Cc: Alex Williamson; acpi-devel
> Subject: Re: [ACPI] NO_RETURN_VALUE w/ 20040715
>
> That reply is a non-sequitur. Yes, we have implemented auto type
> conversion for buffer -> integer for return values from AML methods.
> I'm not expecting the ACPI standard to change to address this.
>
> The discussion we are having is about *internal* methods and type
> conversion where two arguments to an AML operator are differing types.
> This can only be handled by modifying the interpreter and by
optionally
> updating the standard.
>
> -Nate
>
> Moore, Robert wrote:
> > Reply from Phoenix:
> >
> > Unless they can provide an error case for these operators, I'm not
> > convinced. Aren't they talking about driver clients? I'm not sure
how
> > this affects the stated ASL case and I'm not willing to overhaul the
> > conversion rules yet again (which is what he's proposing)
> >
> > Take a look at the cited cases: _FDE: evaluated by drivers. In this
> > case, the ACPI interpreter may have an issue with bad ASL and the
fact
> > that old MS interpeters gave a pointer to data in both cases without
> > careful error checking. But this isn't an ASL issue, it is a
> > driver-level issue.
> >
> > Tim
> >
> >>-----Original Message-----
> >>From: Nate Lawson [mailto:nate-Y6VGUYTwhu0@public.gmane.org]
> >>Sent: Monday, August 23, 2004 2:27 PM
> >>To: Moore, Robert
> >>Cc: Alex Williamson; acpi-devel
> >>Subject: Re: [ACPI] NO_RETURN_VALUE w/ 20040715
> >>
> >>I don't think that approach will be helpful. Instead, I think it
> >
> > should
> >
> >>be "if argument types differ and any arg is an integer, convert the
> >>other to an integer." If not, error AE_TYPE. We have something
like
> >>this in FreeBSD where we found on older systems many methods that
are
> >>supposed to return an integer returned a buffer instead. So many
that
> >>we added an automatic conversion for this to acpi_GetInteger().
Also,
> >
> > I
> >
> >>found a system that uses a package of integers for _FDE instead a
> >
> > buffer
> >
> >>of integers.
> >>
> >>In summary, I've seen a lot of buffers used where integers were
> >
> > expected
> >
> >>but never an integer expected to be converted to a buffer.
> >>
> >>-Nate
> >>
> >>Moore, Robert wrote:
> >>
> >>>I will prototype this using the existing internal mechanisms for
> >>>implicit object conversion.
> >>>
> >>>However, I'm not sure how or if this statement will work as
> >
> > expected:
> >
> >>>
> >>>>>>>If (LEqual (Local0, 0x00))
> >>>>>>>{
> >>>
> >>>
> >>>since Local0 is a buffer, 0x00 will be converted to a buffer before
> >
> > the
> >
> >>>compare.
> >>>
> >>>
> >>>
> >>>
> >>>>-----Original Message-----
> >>>>From: Alex Williamson [mailto:alex.williamson-VXdhtT5mjnY@public.gmane.org]
> >>>>Sent: Monday, August 23, 2004 1:34 PM
> >>>>To: Moore, Robert
> >>>>Cc: acpi-devel
> >>>>Subject: RE: [ACPI] NO_RETURN_VALUE w/ 20040715
> >>>>
> >>>>Bob,
> >>>>
> >>>> Great, I was looking through the history of the LEqual operator
> >>>
> >>>across
> >>>
> >>>
> >>>>the ACPI specs and it got rather convoluted, this seems like a
good
> >>>>compromise. Will there be a CA update to support this (preferably
> >
> > in
> >
> >>>>Linus' tree before 2.6.9 is tagged)? I'd be happy to test on this
> >
> > box
> >
> >>>>if needed. Thanks,
> >>>>
> >>>> Alex
> >>>>
> >>>>On Mon, 2004-08-23 at 13:22 -0700, Moore, Robert wrote:
> >>>>
> >>>>
> >>>>>We are going to update the ACPI spec to something like this:
> >>>>>
> >>>>>* For the following operators, the data type of the first
> operand
> >>>>>dictates both the required type of the second operand and the
type
> >>>
> >>>of
> >>>
> >>>
> >>>>>the result object. (The second operator is converted, if
> >
> > necessary,
> >
> >>>to
> >>>
> >>>
> >>>>>match the type of the first operand.)
> >>>>> Concatenate
> >>>>> LEqual
> >>>>> LGreater
> >>>>> LGreaterEqual
> >>>>> LLess
> >>>>> LLessEqual
> >>>>> LNotEqual
> >
> >
>
>
> --
> Nate
-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
^ permalink raw reply [flat|nested] 11+ messages in thread* RE: NO_RETURN_VALUE w/ 20040715
@ 2004-08-23 21:54 Moore, Robert
[not found] ` <37F890616C995246BE76B3E6B2DBE05501C72022-sBd4vmA9Se5Qxe9IK+vIArfspsVTdybXVpNB7YpNyf8@public.gmane.org>
0 siblings, 1 reply; 11+ messages in thread
From: Moore, Robert @ 2004-08-23 21:54 UTC (permalink / raw)
To: Nate Lawson; +Cc: Alex Williamson, acpi-devel
Reply from Phoenix:
Unless they can provide an error case for these operators, I'm not
convinced. Aren't they talking about driver clients? I'm not sure how
this affects the stated ASL case and I'm not willing to overhaul the
conversion rules yet again (which is what he's proposing)
Take a look at the cited cases: _FDE: evaluated by drivers. In this
case, the ACPI interpreter may have an issue with bad ASL and the fact
that old MS interpeters gave a pointer to data in both cases without
careful error checking. But this isn't an ASL issue, it is a
driver-level issue.
Tim
> -----Original Message-----
> From: Nate Lawson [mailto:nate-Y6VGUYTwhu0@public.gmane.org]
> Sent: Monday, August 23, 2004 2:27 PM
> To: Moore, Robert
> Cc: Alex Williamson; acpi-devel
> Subject: Re: [ACPI] NO_RETURN_VALUE w/ 20040715
>
> I don't think that approach will be helpful. Instead, I think it
should
> be "if argument types differ and any arg is an integer, convert the
> other to an integer." If not, error AE_TYPE. We have something like
> this in FreeBSD where we found on older systems many methods that are
> supposed to return an integer returned a buffer instead. So many that
> we added an automatic conversion for this to acpi_GetInteger(). Also,
I
> found a system that uses a package of integers for _FDE instead a
buffer
> of integers.
>
> In summary, I've seen a lot of buffers used where integers were
expected
> but never an integer expected to be converted to a buffer.
>
> -Nate
>
> Moore, Robert wrote:
> > I will prototype this using the existing internal mechanisms for
> > implicit object conversion.
> >
> > However, I'm not sure how or if this statement will work as
expected:
> >
> >
> >>>>>If (LEqual (Local0, 0x00))
> >>>>>{
> >
> >
> > since Local0 is a buffer, 0x00 will be converted to a buffer before
the
> > compare.
> >
> >
> >
> >>-----Original Message-----
> >>From: Alex Williamson [mailto:alex.williamson-VXdhtT5mjnY@public.gmane.org]
> >>Sent: Monday, August 23, 2004 1:34 PM
> >>To: Moore, Robert
> >>Cc: acpi-devel
> >>Subject: RE: [ACPI] NO_RETURN_VALUE w/ 20040715
> >>
> >>Bob,
> >>
> >> Great, I was looking through the history of the LEqual operator
> >
> > across
> >
> >>the ACPI specs and it got rather convoluted, this seems like a good
> >>compromise. Will there be a CA update to support this (preferably
in
> >>Linus' tree before 2.6.9 is tagged)? I'd be happy to test on this
box
> >>if needed. Thanks,
> >>
> >> Alex
> >>
> >>On Mon, 2004-08-23 at 13:22 -0700, Moore, Robert wrote:
> >>
> >>>We are going to update the ACPI spec to something like this:
> >>>
> >>>* For the following operators, the data type of the first operand
> >>>dictates both the required type of the second operand and the type
> >
> > of
> >
> >>>the result object. (The second operator is converted, if
necessary,
> >
> > to
> >
> >>>match the type of the first operand.)
> >>> Concatenate
> >>> LEqual
> >>> LGreater
> >>> LGreaterEqual
> >>> LLess
> >>> LLessEqual
> >>> LNotEqual
-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
^ permalink raw reply [flat|nested] 11+ messages in thread* RE: NO_RETURN_VALUE w/ 20040715
@ 2004-08-23 20:46 Moore, Robert
[not found] ` <37F890616C995246BE76B3E6B2DBE05501C71EF2-sBd4vmA9Se5Qxe9IK+vIArfspsVTdybXVpNB7YpNyf8@public.gmane.org>
0 siblings, 1 reply; 11+ messages in thread
From: Moore, Robert @ 2004-08-23 20:46 UTC (permalink / raw)
To: Alex Williamson; +Cc: acpi-devel
I will prototype this using the existing internal mechanisms for
implicit object conversion.
However, I'm not sure how or if this statement will work as expected:
> > > > If (LEqual (Local0, 0x00))
> > > > {
since Local0 is a buffer, 0x00 will be converted to a buffer before the
compare.
> -----Original Message-----
> From: Alex Williamson [mailto:alex.williamson-VXdhtT5mjnY@public.gmane.org]
> Sent: Monday, August 23, 2004 1:34 PM
> To: Moore, Robert
> Cc: acpi-devel
> Subject: RE: [ACPI] NO_RETURN_VALUE w/ 20040715
>
> Bob,
>
> Great, I was looking through the history of the LEqual operator
across
> the ACPI specs and it got rather convoluted, this seems like a good
> compromise. Will there be a CA update to support this (preferably in
> Linus' tree before 2.6.9 is tagged)? I'd be happy to test on this box
> if needed. Thanks,
>
> Alex
>
> On Mon, 2004-08-23 at 13:22 -0700, Moore, Robert wrote:
> > We are going to update the ACPI spec to something like this:
> >
> > * For the following operators, the data type of the first operand
> > dictates both the required type of the second operand and the type
of
> > the result object. (The second operator is converted, if necessary,
to
> > match the type of the first operand.)
> > Concatenate
> > LEqual
> > LGreater
> > LGreaterEqual
> > LLess
> > LLessEqual
> > LNotEqual
> >
> >
> >
> >
> >
> > > -----Original Message-----
> > > From: Alex Williamson [mailto:alex.williamson-VXdhtT5mjnY@public.gmane.org]
> > > Sent: Friday, August 20, 2004 4:18 PM
> > > To: Moore, Robert
> > > Cc: acpi-devel
> > > Subject: RE: [ACPI] NO_RETURN_VALUE w/ 20040715
> > >
> > > Bob,
> > >
> > > Thanks once again for the quick and thorough analysis. I'll
feed
> > > this into our ACPI folks here and see if they have a strong
opinion or
> > > can just avoid the problem. Thanks,
> > >
> > > Alex
> > >
> > > On Fri, 2004-08-20 at 14:07 -0700, Moore, Robert wrote:
> > > > This is an error during the execution of this operator in SSTA:
> > > >
> > > > If (LEqual (Local0, 0x00))
> > > > {
> > > >
> > > > It turns out that Local0 contains a Buffer (BSTR), and the
statement
> > is
> > > > trying to compare it to an Integer. This causes an operand type
> > > > exception, which then results in a no-return-value exception.
> > > >
> > > > We have recently upgraded LEqual to handle buffers and strings;
and
> > it
> > > > is implemented according to the rules below, which would appear
to
> > > > require that both operands be of the same type.
> > > >
> > > > It is not clear to me whether the logical operators should
support
> > > > "implicit type conversion". This will require additional
> > investigation.
> > > >
> > > >
> > > >
> > > > From the ACPI spec:
> > > >
> > > > 17.5.60 LEqual (Logical Equal)
> > > > Syntax
> > > > LEqual (Source1, Source2) => Boolean
> > > >
> > > > Arguments
> > > > Source1 and Source2 must evaluate to the same data type and both
> > must be
> > > > integers, strings, or buffers.
> > > >
> > > > Description
> > > > If the values are equal, True is returned; otherwise, False is
> > returned.
> > > > For integers, a numeric compare is performed. For strings and
> > buffers,
> > > > True is returned only if both lengths are the same and the
result of
> > a
> > > > byte-wise compare indicates exact equality.
> > > >
> > > >
> > > >
> > > > exdump-0520 [08] ExDumpOperands : ************* Operand
> > Stack
> > > > Contents (Opcode [LEqual], 2 Operands)
> > > > exdump-0192 [08] ExDumpOperand : 004FE3B4 Integer
> > > > 0000000000000000
> > > > exdump-0192 [08] ExDumpOperand : 004FE414 Buffer len 1
@
> > > > 004FD354
> > > > Buffer Contents: 00
> > > > exdump-0537 [08] ExDumpOperands : ************* Stack
dump
> > from
> > > > dswexec(510), after ExResolveOperands
> > > > exoparg2-0668 [09] ExOpcode_2A_0T_1R : ----Entry LEqual
> > > > utobject-0160 [10] UtCreateInternalObject: ----Entry Integer
> > > > utobject-0343 [11] UtAllocateObjectDescDb: ----Entry
> > > > utalloc-0231 [11] UtAcquireFromCache : Object 004FFAA4 from
> > Operand
> > > > Object Cache
> > > > utobject-0360 [11] UtAllocateObjectDescDb: 004FFAA4 Size 28
> > > > utobject-0362 [11] UtAllocateObjectDescDb: ----Exit- 004FFAA4
> > > > utobject-0208 [10] UtCreateInternalObject: ----Exit- 004FFAA4
> > > > utdelete-0719 [10] UtRemoveReference : ----Entry 004FFAA4
> > > > utdelete-0742 [10] UtRemoveReference : Obj 004FFAA4 Refs=1
> > > > utdelete-0515 [11] UtUpdateObjectReferenc: ----Entry 004FFAA4
> > > > utmisc-1212 [12] UtCreateUpdateState : ----Entry 004FFAA4
> > > > utalloc-0231 [12] UtAcquireFromCache : Object 004FEA44 from
> > State
> > > > Object Cache
> > > > utmisc-1229 [12] UtCreateUpdateState : ----Exit- 004FEA44
> > > > utmisc-1336 [12] UtDeleteGenericState : ----Entry
> > > > utmisc-1340 [12] UtDeleteGenericState : ----Exit-
> > > > utdelete-0431 [11] UtUpdateRefCount : Obj 004FFAA4 Refs=0,
> > > > [Decremented]
> > > > utdelete-0151 [12] UtDeleteInternalObj : ----Entry 004FFAA4
> > > > utdelete-0324 [12] UtDeleteInternalObj : Deleting Object
004FFAA4
> > > > [Integer]
> > > > utobject-0382 [13] UtDeleteObjectDesc : ----Entry 004FFAA4
> > > > utobject-0397 [13] UtDeleteObjectDesc : ----Exit-
> > > > utdelete-0327 [12] UtDeleteInternalObj : ----Exit-
> > > > utmisc-1096 [12] UtPopGenericState : ----Entry
> > > > utmisc-1109 [12] UtPopGenericState : ----Exit- 00000000
> > > > utdelete-0655 [11] UtUpdateObjectReferenc: ----Exit- AE_OK
> > > > utdelete-0750 [10] UtRemoveReference : ----Exit-
> > > > exoparg2-0756 [09] ExOpcode_2A_0T_1R : ----Exit-
> > ****Exception****:
> > > > AE_AML_OPERAND_TYPE
> > > >
> > > > > -----Original Message-----
> > > > > From: acpi-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
[mailto:acpi-devel-
> > > > > admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] On Behalf Of Alex Williamson
> > > > > Sent: Friday, August 20, 2004 1:12 PM
> > > > > To: acpi-devel
> > > > > Subject: [ACPI] NO_RETURN_VALUE w/ 20040715
> > > > >
> > > > >
> > > > > I've got one more new error going on with the new ACPI. On
> > bootup
> > > > of
> > > > > an hp rx8620 (sx1000 based ia64 system), I'm now getting a
number
> > of
> > > > > these:
> > > > >
> > > > > dswstate-0273 [18] ds_result_pop_from_bot: No result objects!
> > > > > State=e000072000095030
> > > > > dsutils-0526 [18] ds_create_operand : Missing or null
operand,
> > > > > AE_AML_NO_RETURN_VALUE
> > > > > psparse-1133: *** Error: Method execution failed
> > > > > [\_SB_.N000.S000.IOC0.L000.SSTA] (Node e0000703fef6d730),
> > > > > AE_AML_NO_RETURN_VALUE
> > > > > psparse-1133: *** Error: Method execution failed
> > > > > [\_SB_.N000.S000.IOC0.L000.SBF0._STA] (Node e0000703fef6f130),
> > > > > AE_AML_NO_RETURN_VALUE
> > > > > uteval-0158: *** Error: Method execution failed
> > > > > [\_SB_.N000.S000.IOC0.L000.SBF0._STA] (Node e0000703fef6f130),
> > > > > AE_AML_NO_RETURN_VALUE
> > > > >
> > > > > This did not happen w/ the previous ACPI code so I'd like to
get a
> > > > feel
> > > > > for whether this looks like an interpreter bug or an AML bug.
> > The
> > > > > disassembled DSDT for the _STA and SSTA methods is below.
Looks
> > to me
> > > > > like there's no way out of the SSTA method w/o a return, but
then
> > I
> > > > > don't really know AML. I can provide the entire DSDT if this
> > isn't
> > > > > sufficient. Thanks,
> > > > >
> > > > > Alex
> > > > >
> > > > > Method (SSTA, 0, NotSerialized)
> > > > > {
> > > > > Acquire (MCTX, 0xFFFF)
> > > > > Store (0x0F, CSTS)
> > > > > If (LNot (LEqual (PRES (), Ones)))
> > > > > {
> > > > > Store (0x00, CSTS)
> > > > > Release (MCTX)
> > > > > Return (ToInteger (CSTS, Local0))
> > > > > }
> > > > > If (LNot (LEqual (PCHK (), Ones)))
> > > > > {
> > > > > Store (0x00, GOOD)
> > > > > Store (0x00, LIVE)
> > > > > Store (0x00, SEEN)
> > > > > Release (MCTX)
> > > > > Return (ToInteger (CSTS, Local0))
> > > > > }
> > > > > If (LEqual (RC, 0x00))
> > > > > {
> > > > > Store (BSTR, Local0)
> > > > > }
> > > > > Else
> > > > > {
> > > > > Store (0x00, Local0)
> > > > > }
> > > > > If (LEqual (Local0, 0x00))
> > > > > {
> > > > > Store (0x01, GOOD)
> > > > > }
> > > > > Release (MCTX)
> > > > > Return (ToInteger (CSTS, Local0))
> > > > > }
> > > > > ...
> > > > > Device (SBF0)
> > > > > {
> > > > > ...
> > > > > Method (_STA, 0, NotSerialized)
> > > > > {
> > > > > Return (^^SSTA ())
> > > > > }
> > > > > }
> > > > >
> > > > > --
> > > > > Alex Williamson HP Linux & Open
Source
> > Lab
> > > > >
> > > > >
> > > > >
> > > > > -------------------------------------------------------
> > > > > SF.Net email is sponsored by Shop4tech.com-Lowest price on
Blank
> > Media
> > > > > 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only
$33
> > > > > Save 50% off Retail on Ink & Toner - Free Shipping and Free
Gift.
> > > > > http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
> > > > > _______________________________________________
> > > > > Acpi-devel mailing list
> > > > > Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> > > > > https://lists.sourceforge.net/lists/listinfo/acpi-devel
> > > >
> > > --
> > > Alex Williamson HP Linux & Open Source
Lab
> >
> --
> Alex Williamson HP Linux & Open Source Lab
-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
^ permalink raw reply [flat|nested] 11+ messages in thread* RE: NO_RETURN_VALUE w/ 20040715
@ 2004-08-20 21:07 Moore, Robert
[not found] ` <37F890616C995246BE76B3E6B2DBE05501C19B93-sBd4vmA9Se5Qxe9IK+vIArfspsVTdybXVpNB7YpNyf8@public.gmane.org>
0 siblings, 1 reply; 11+ messages in thread
From: Moore, Robert @ 2004-08-20 21:07 UTC (permalink / raw)
To: Alex Williamson, acpi-devel
This is an error during the execution of this operator in SSTA:
If (LEqual (Local0, 0x00))
{
It turns out that Local0 contains a Buffer (BSTR), and the statement is
trying to compare it to an Integer. This causes an operand type
exception, which then results in a no-return-value exception.
We have recently upgraded LEqual to handle buffers and strings; and it
is implemented according to the rules below, which would appear to
require that both operands be of the same type.
It is not clear to me whether the logical operators should support
"implicit type conversion". This will require additional investigation.
>From the ACPI spec:
17.5.60 LEqual (Logical Equal)
Syntax
LEqual (Source1, Source2) => Boolean
Arguments
Source1 and Source2 must evaluate to the same data type and both must be
integers, strings, or buffers.
Description
If the values are equal, True is returned; otherwise, False is returned.
For integers, a numeric compare is performed. For strings and buffers,
True is returned only if both lengths are the same and the result of a
byte-wise compare indicates exact equality.
exdump-0520 [08] ExDumpOperands : ************* Operand Stack
Contents (Opcode [LEqual], 2 Operands)
exdump-0192 [08] ExDumpOperand : 004FE3B4 Integer
0000000000000000
exdump-0192 [08] ExDumpOperand : 004FE414 Buffer len 1 @
004FD354
Buffer Contents: 00
exdump-0537 [08] ExDumpOperands : ************* Stack dump from
dswexec(510), after ExResolveOperands
exoparg2-0668 [09] ExOpcode_2A_0T_1R : ----Entry LEqual
utobject-0160 [10] UtCreateInternalObject: ----Entry Integer
utobject-0343 [11] UtAllocateObjectDescDb: ----Entry
utalloc-0231 [11] UtAcquireFromCache : Object 004FFAA4 from Operand
Object Cache
utobject-0360 [11] UtAllocateObjectDescDb: 004FFAA4 Size 28
utobject-0362 [11] UtAllocateObjectDescDb: ----Exit- 004FFAA4
utobject-0208 [10] UtCreateInternalObject: ----Exit- 004FFAA4
utdelete-0719 [10] UtRemoveReference : ----Entry 004FFAA4
utdelete-0742 [10] UtRemoveReference : Obj 004FFAA4 Refs=1
utdelete-0515 [11] UtUpdateObjectReferenc: ----Entry 004FFAA4
utmisc-1212 [12] UtCreateUpdateState : ----Entry 004FFAA4
utalloc-0231 [12] UtAcquireFromCache : Object 004FEA44 from State
Object Cache
utmisc-1229 [12] UtCreateUpdateState : ----Exit- 004FEA44
utmisc-1336 [12] UtDeleteGenericState : ----Entry
utmisc-1340 [12] UtDeleteGenericState : ----Exit-
utdelete-0431 [11] UtUpdateRefCount : Obj 004FFAA4 Refs=0,
[Decremented]
utdelete-0151 [12] UtDeleteInternalObj : ----Entry 004FFAA4
utdelete-0324 [12] UtDeleteInternalObj : Deleting Object 004FFAA4
[Integer]
utobject-0382 [13] UtDeleteObjectDesc : ----Entry 004FFAA4
utobject-0397 [13] UtDeleteObjectDesc : ----Exit-
utdelete-0327 [12] UtDeleteInternalObj : ----Exit-
utmisc-1096 [12] UtPopGenericState : ----Entry
utmisc-1109 [12] UtPopGenericState : ----Exit- 00000000
utdelete-0655 [11] UtUpdateObjectReferenc: ----Exit- AE_OK
utdelete-0750 [10] UtRemoveReference : ----Exit-
exoparg2-0756 [09] ExOpcode_2A_0T_1R : ----Exit- ****Exception****:
AE_AML_OPERAND_TYPE
> -----Original Message-----
> From: acpi-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org [mailto:acpi-devel-
> admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] On Behalf Of Alex Williamson
> Sent: Friday, August 20, 2004 1:12 PM
> To: acpi-devel
> Subject: [ACPI] NO_RETURN_VALUE w/ 20040715
>
>
> I've got one more new error going on with the new ACPI. On bootup
of
> an hp rx8620 (sx1000 based ia64 system), I'm now getting a number of
> these:
>
> dswstate-0273 [18] ds_result_pop_from_bot: No result objects!
> State=e000072000095030
> dsutils-0526 [18] ds_create_operand : Missing or null operand,
> AE_AML_NO_RETURN_VALUE
> psparse-1133: *** Error: Method execution failed
> [\_SB_.N000.S000.IOC0.L000.SSTA] (Node e0000703fef6d730),
> AE_AML_NO_RETURN_VALUE
> psparse-1133: *** Error: Method execution failed
> [\_SB_.N000.S000.IOC0.L000.SBF0._STA] (Node e0000703fef6f130),
> AE_AML_NO_RETURN_VALUE
> uteval-0158: *** Error: Method execution failed
> [\_SB_.N000.S000.IOC0.L000.SBF0._STA] (Node e0000703fef6f130),
> AE_AML_NO_RETURN_VALUE
>
> This did not happen w/ the previous ACPI code so I'd like to get a
feel
> for whether this looks like an interpreter bug or an AML bug. The
> disassembled DSDT for the _STA and SSTA methods is below. Looks to me
> like there's no way out of the SSTA method w/o a return, but then I
> don't really know AML. I can provide the entire DSDT if this isn't
> sufficient. Thanks,
>
> Alex
>
> Method (SSTA, 0, NotSerialized)
> {
> Acquire (MCTX, 0xFFFF)
> Store (0x0F, CSTS)
> If (LNot (LEqual (PRES (), Ones)))
> {
> Store (0x00, CSTS)
> Release (MCTX)
> Return (ToInteger (CSTS, Local0))
> }
> If (LNot (LEqual (PCHK (), Ones)))
> {
> Store (0x00, GOOD)
> Store (0x00, LIVE)
> Store (0x00, SEEN)
> Release (MCTX)
> Return (ToInteger (CSTS, Local0))
> }
> If (LEqual (RC, 0x00))
> {
> Store (BSTR, Local0)
> }
> Else
> {
> Store (0x00, Local0)
> }
> If (LEqual (Local0, 0x00))
> {
> Store (0x01, GOOD)
> }
> Release (MCTX)
> Return (ToInteger (CSTS, Local0))
> }
> ...
> Device (SBF0)
> {
> ...
> Method (_STA, 0, NotSerialized)
> {
> Return (^^SSTA ())
> }
> }
>
> --
> Alex Williamson HP Linux & Open Source Lab
>
>
>
> -------------------------------------------------------
> SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
> 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
> Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
> http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
> _______________________________________________
> Acpi-devel mailing list
> Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> https://lists.sourceforge.net/lists/listinfo/acpi-devel
-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
^ permalink raw reply [flat|nested] 11+ messages in thread* RE: NO_RETURN_VALUE w/ 20040715
@ 2004-08-20 20:31 Moore, Robert
0 siblings, 0 replies; 11+ messages in thread
From: Moore, Robert @ 2004-08-20 20:31 UTC (permalink / raw)
To: Alex Williamson, acpi-devel
The error occurred *during* the execution of SSTA, therefore one of the
methods called by SSTA is not returning a value.
psparse-1133: *** Error: Method execution failed
[\_SB_.N000.S000.IOC0.L000.SSTA] (Node e0000703fef6d730),
AE_AML_NO_RETURN_VALUE
Take a look at
PRES ()
PCHK ()
Please send the original (binary) DSDT
Bob
> -----Original Message-----
> From: acpi-devel-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org [mailto:acpi-devel-
> admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] On Behalf Of Alex Williamson
> Sent: Friday, August 20, 2004 1:12 PM
> To: acpi-devel
> Subject: [ACPI] NO_RETURN_VALUE w/ 20040715
>
>
> I've got one more new error going on with the new ACPI. On bootup
of
> an hp rx8620 (sx1000 based ia64 system), I'm now getting a number of
> these:
>
> dswstate-0273 [18] ds_result_pop_from_bot: No result objects!
> State=e000072000095030
> dsutils-0526 [18] ds_create_operand : Missing or null operand,
> AE_AML_NO_RETURN_VALUE
> psparse-1133: *** Error: Method execution failed
> [\_SB_.N000.S000.IOC0.L000.SSTA] (Node e0000703fef6d730),
> AE_AML_NO_RETURN_VALUE
> psparse-1133: *** Error: Method execution failed
> [\_SB_.N000.S000.IOC0.L000.SBF0._STA] (Node e0000703fef6f130),
> AE_AML_NO_RETURN_VALUE
> uteval-0158: *** Error: Method execution failed
> [\_SB_.N000.S000.IOC0.L000.SBF0._STA] (Node e0000703fef6f130),
> AE_AML_NO_RETURN_VALUE
>
> This did not happen w/ the previous ACPI code so I'd like to get a
feel
> for whether this looks like an interpreter bug or an AML bug. The
> disassembled DSDT for the _STA and SSTA methods is below. Looks to me
> like there's no way out of the SSTA method w/o a return, but then I
> don't really know AML. I can provide the entire DSDT if this isn't
> sufficient. Thanks,
>
> Alex
>
> Method (SSTA, 0, NotSerialized)
> {
> Acquire (MCTX, 0xFFFF)
> Store (0x0F, CSTS)
> If (LNot (LEqual (PRES (), Ones)))
> {
> Store (0x00, CSTS)
> Release (MCTX)
> Return (ToInteger (CSTS, Local0))
> }
> If (LNot (LEqual (PCHK (), Ones)))
> {
> Store (0x00, GOOD)
> Store (0x00, LIVE)
> Store (0x00, SEEN)
> Release (MCTX)
> Return (ToInteger (CSTS, Local0))
> }
> If (LEqual (RC, 0x00))
> {
> Store (BSTR, Local0)
> }
> Else
> {
> Store (0x00, Local0)
> }
> If (LEqual (Local0, 0x00))
> {
> Store (0x01, GOOD)
> }
> Release (MCTX)
> Return (ToInteger (CSTS, Local0))
> }
> ...
> Device (SBF0)
> {
> ...
> Method (_STA, 0, NotSerialized)
> {
> Return (^^SSTA ())
> }
> }
>
> --
> Alex Williamson HP Linux & Open Source Lab
>
>
>
> -------------------------------------------------------
> SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
> 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
> Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
> http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
> _______________________________________________
> Acpi-devel mailing list
> Acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> https://lists.sourceforge.net/lists/listinfo/acpi-devel
-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
^ permalink raw reply [flat|nested] 11+ messages in thread* NO_RETURN_VALUE w/ 20040715
@ 2004-08-20 20:11 Alex Williamson
0 siblings, 0 replies; 11+ messages in thread
From: Alex Williamson @ 2004-08-20 20:11 UTC (permalink / raw)
To: acpi-devel
I've got one more new error going on with the new ACPI. On bootup of
an hp rx8620 (sx1000 based ia64 system), I'm now getting a number of
these:
dswstate-0273 [18] ds_result_pop_from_bot: No result objects! State=e000072000095030
dsutils-0526 [18] ds_create_operand : Missing or null operand, AE_AML_NO_RETURN_VALUE
psparse-1133: *** Error: Method execution failed [\_SB_.N000.S000.IOC0.L000.SSTA] (Node e0000703fef6d730), AE_AML_NO_RETURN_VALUE
psparse-1133: *** Error: Method execution failed [\_SB_.N000.S000.IOC0.L000.SBF0._STA] (Node e0000703fef6f130), AE_AML_NO_RETURN_VALUE
uteval-0158: *** Error: Method execution failed [\_SB_.N000.S000.IOC0.L000.SBF0._STA] (Node e0000703fef6f130), AE_AML_NO_RETURN_VALUE
This did not happen w/ the previous ACPI code so I'd like to get a feel
for whether this looks like an interpreter bug or an AML bug. The
disassembled DSDT for the _STA and SSTA methods is below. Looks to me
like there's no way out of the SSTA method w/o a return, but then I
don't really know AML. I can provide the entire DSDT if this isn't
sufficient. Thanks,
Alex
Method (SSTA, 0, NotSerialized)
{
Acquire (MCTX, 0xFFFF)
Store (0x0F, CSTS)
If (LNot (LEqual (PRES (), Ones)))
{
Store (0x00, CSTS)
Release (MCTX)
Return (ToInteger (CSTS, Local0))
}
If (LNot (LEqual (PCHK (), Ones)))
{
Store (0x00, GOOD)
Store (0x00, LIVE)
Store (0x00, SEEN)
Release (MCTX)
Return (ToInteger (CSTS, Local0))
}
If (LEqual (RC, 0x00))
{
Store (BSTR, Local0)
}
Else
{
Store (0x00, Local0)
}
If (LEqual (Local0, 0x00))
{
Store (0x01, GOOD)
}
Release (MCTX)
Return (ToInteger (CSTS, Local0))
}
...
Device (SBF0)
{
...
Method (_STA, 0, NotSerialized)
{
Return (^^SSTA ())
}
}
--
Alex Williamson HP Linux & Open Source Lab
-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2004-08-23 22:05 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-08-23 20:22 NO_RETURN_VALUE w/ 20040715 Moore, Robert
[not found] ` <37F890616C995246BE76B3E6B2DBE05501C71E7A-sBd4vmA9Se5Qxe9IK+vIArfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2004-08-23 20:34 ` Alex Williamson
-- strict thread matches above, loose matches on Subject: below --
2004-08-23 22:05 Moore, Robert
2004-08-23 21:54 Moore, Robert
[not found] ` <37F890616C995246BE76B3E6B2DBE05501C72022-sBd4vmA9Se5Qxe9IK+vIArfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2004-08-23 22:01 ` Nate Lawson
2004-08-23 20:46 Moore, Robert
[not found] ` <37F890616C995246BE76B3E6B2DBE05501C71EF2-sBd4vmA9Se5Qxe9IK+vIArfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2004-08-23 21:26 ` Nate Lawson
2004-08-20 21:07 Moore, Robert
[not found] ` <37F890616C995246BE76B3E6B2DBE05501C19B93-sBd4vmA9Se5Qxe9IK+vIArfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2004-08-20 23:17 ` Alex Williamson
2004-08-20 20:31 Moore, Robert
2004-08-20 20:11 Alex Williamson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox