Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Aug 2019 11:57:02 -0600
From:      Scott Long <scottl@samsco.org>
To:        Jung-uk Kim <jkim@FreeBSD.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r350510 - in head/sys/contrib/dev/acpica: . compiler components/dispatcher components/events components/executer components/namespace components/tables components/utilities include
Message-ID:  <58DA75EF-AFA5-42C3-B441-7A9018C8E134@samsco.org>
In-Reply-To: <201908011745.x71HjhAC058358@repo.freebsd.org>
References:  <201908011745.x71HjhAC058358@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Thanks.  I=E2=80=99m working on the root cause right now, hopefully will =
have
more information soon.

Scott


> On Aug 1, 2019, at 11:45 AM, Jung-uk Kim <jkim@FreeBSD.org> wrote:
>=20
> Author: jkim
> Date: Thu Aug  1 17:45:43 2019
> New Revision: 350510
> URL: https://svnweb.freebsd.org/changeset/base/350510
>=20
> Log:
>  Revert r349863 (ACPICA 20190703).
>=20
>  This commit caused boot failures on some systems.
>=20
>  Requested by:	scottl
>=20
> Modified:
>  head/sys/contrib/dev/acpica/changes.txt
>  head/sys/contrib/dev/acpica/compiler/asldefine.h
>  head/sys/contrib/dev/acpica/compiler/aslglobal.h
>  head/sys/contrib/dev/acpica/compiler/aslload.c
>  head/sys/contrib/dev/acpica/compiler/aslmessages.c
>  head/sys/contrib/dev/acpica/compiler/aslmessages.h
>  head/sys/contrib/dev/acpica/compiler/aslstubs.c
>  head/sys/contrib/dev/acpica/compiler/aslsupport.l
>  head/sys/contrib/dev/acpica/components/dispatcher/dsinit.c
>  head/sys/contrib/dev/acpica/components/events/evgpe.c
>  head/sys/contrib/dev/acpica/components/events/evgpeblk.c
>  head/sys/contrib/dev/acpica/components/events/evxface.c
>  head/sys/contrib/dev/acpica/components/events/evxfgpe.c
>  head/sys/contrib/dev/acpica/components/executer/exconfig.c
>  head/sys/contrib/dev/acpica/components/namespace/nsaccess.c
>  head/sys/contrib/dev/acpica/components/namespace/nseval.c
>  head/sys/contrib/dev/acpica/components/namespace/nsinit.c
>  head/sys/contrib/dev/acpica/components/namespace/nsload.c
>  head/sys/contrib/dev/acpica/components/namespace/nsutils.c
>  head/sys/contrib/dev/acpica/components/tables/tbdata.c
>  head/sys/contrib/dev/acpica/components/tables/tbxfload.c
>  head/sys/contrib/dev/acpica/components/utilities/utinit.c
>  head/sys/contrib/dev/acpica/components/utilities/utxfinit.c
>  head/sys/contrib/dev/acpica/include/acevents.h
>  head/sys/contrib/dev/acpica/include/acglobal.h
>  head/sys/contrib/dev/acpica/include/acnamesp.h
>  head/sys/contrib/dev/acpica/include/acpixf.h
>=20
> Modified: head/sys/contrib/dev/acpica/changes.txt
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/contrib/dev/acpica/changes.txt	Thu Aug  1 17:37:25 2019	=
(r350509)
> +++ head/sys/contrib/dev/acpica/changes.txt	Thu Aug  1 17:45:43 2019	=
(r350510)
> @@ -1,53 +1,4 @@
> ----------------------------------------
> -03 July 2019. Summary of changes for version 20190703:
> -
> -
> -1) ACPICA kernel-resident subsystem:
> -
> -Remove legacy module-level support code. There were still some =
remnants=20
> -of the legacy module-level code executions. Since we no longer =
support=20
> -this option, this is essentially dead code and has been removed from =
the=20
> -ACPICA source.
> -
> -iASL: ensure that _WAK, _PTS, _TTS, and _Sx are declared only at the =
root=20
> -scope. If these named objects are declared outside the root scope, =
they=20
> -will not be invoked by any host Operating System.
> -
> -Clear status of GPEs on first direct enable. ACPI GPEs (other than =
the EC=20
> -one) can be enabled in two situations. First, the GPEs with existing =
_Lxx=20
> -and _Exx methods are enabled implicitly by ACPICA during system=20
> -initialization.  Second, the GPEs without these methods (like GPEs =
listed=20
> -by _PRW objects for wakeup devices) need to be enabled directly by =
the=20
> -code that is going to use them (e.g. ACPI power management or device=20=

> -drivers).
> -
> -In the former case, if the status of a given GPE is set to start =
with,=20
> -its handler method (either _Lxx or _Exx) needs to be invoked to take =
care=20
> -of the events (possibly) signaled before the GPE was enabled. In the=20=

> -latter case, however, the first caller of AcpiEnableGpe() for a given =
GPE=20
> -should not be expected to care about any events that might be =
signaled=20
> -through it earlier.  In that case, it is better to clear the status =
of=20
> -the GPE before enabling it, to prevent stale events from triggering=20=

> -unwanted actions (like spurious system resume, for example).
> -
> -For this reason, modify AcpiEvAddGpeReference() to take an additional=20=

> -boolean argument indicating whether or not the GPE status needs to be=20=

> -cleared when its reference counter changes from zero to one and make=20=

> -AcpiEnableGpe() pass TRUE to it through that new argument.
> -
> -
> -2) iASL Compiler/Disassembler and ACPICA tools:
> -
> -The tool generation process has been migrated to MSVC 2017, and all=20=

> -project files have been upgraded. The new project files appear in the=20=

> -directory \acpica\generate\msvc2017. This change effectively =
deprecates=20
> -the older project files in \acpica\generate\msvc9.
> -
> -iASL: ensure that _WAK, _PTS, _TTS, and _Sx are declared only at the =
root=20
> -scope. If these named objects are declared outside the root scope, =
they=20
> -will not be invoked by any host Operating System
> -
> -----------------------------------------
> 09 May 2019. Summary of changes for version 20190509:
>=20
>=20
>=20
> Modified: head/sys/contrib/dev/acpica/compiler/asldefine.h
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/contrib/dev/acpica/compiler/asldefine.h	Thu Aug  1 =
17:37:25 2019	(r350509)
> +++ head/sys/contrib/dev/acpica/compiler/asldefine.h	Thu Aug  1 =
17:45:43 2019	(r350510)
> @@ -298,20 +298,4 @@
> #define COMMENT_CAPTURE_ON    AslGbl_CommentState.CaptureComments =3D =
TRUE;
> #define COMMENT_CAPTURE_OFF   AslGbl_CommentState.CaptureComments =3D =
FALSE;
>=20
> -/*
> - * Special name segments - these must only be declared at the root =
scope
> - */
> -#define NAMESEG__PTS    "_PTS"
> -#define NAMESEG__WAK    "_WAK"
> -#define NAMESEG__S0     "_S0_"
> -#define NAMESEG__S1     "_S1_"
> -#define NAMESEG__S2     "_S2_"
> -#define NAMESEG__S3     "_S3_"
> -#define NAMESEG__S4     "_S4_"
> -#define NAMESEG__S5     "_S5_"
> -#define NAMESEG__TTS    "_TTS"
> -
> -#define MAX_SPECIAL_NAMES      9
> -
> -
> #endif /* ASLDEFINE.H */
>=20
> Modified: head/sys/contrib/dev/acpica/compiler/aslglobal.h
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/contrib/dev/acpica/compiler/aslglobal.h	Thu Aug  1 =
17:37:25 2019	(r350509)
> +++ head/sys/contrib/dev/acpica/compiler/aslglobal.h	Thu Aug  1 =
17:45:43 2019	(r350510)
> @@ -223,26 +223,11 @@ const char                          =
*AslGbl_OpFlagName
>     "OP_NOT_FOUND_DURING_LOAD"
> };
>=20
> -const char                          *AslGbl_SpecialNamedObjects =
[MAX_SPECIAL_NAMES] =3D
> -{
> -    NAMESEG__PTS,
> -    NAMESEG__WAK,
> -    NAMESEG__S0,
> -    NAMESEG__S1,
> -    NAMESEG__S2,
> -    NAMESEG__S3,
> -    NAMESEG__S4,
> -    NAMESEG__S5,
> -    NAMESEG__TTS
> -};
> -
> #else
> extern ASL_FILE_DESC                AslGbl_FileDescs [ASL_NUM_FILES];
> extern UINT32                       =
AslGbl_ExceptionCount[ASL_NUM_REPORT_LEVELS];
> extern const char                   =
*AslGbl_OpFlagNames[ACPI_NUM_OP_FLAGS];
> -extern const char                   =
*AslGbl_SpecialNamedObjects[MAX_SPECIAL_NAMES];
> #endif
> -
>=20
>=20
> /*
>=20
> Modified: head/sys/contrib/dev/acpica/compiler/aslload.c
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/contrib/dev/acpica/compiler/aslload.c	Thu Aug  1 =
17:37:25 2019	(r350509)
> +++ head/sys/contrib/dev/acpica/compiler/aslload.c	Thu Aug  1 =
17:45:43 2019	(r350510)
> @@ -164,7 +164,6 @@
>=20
> static ACPI_STATUS
> LdLoadFieldElements (
> -    UINT32                  AmlType,
>     ACPI_PARSE_OBJECT       *Op,
>     ACPI_WALK_STATE         *WalkState);
>=20
> @@ -191,10 +190,6 @@ LdCommonNamespaceEnd (
>     UINT32                  Level,
>     void                    *Context);
>=20
> -static void
> -LdCheckSpecialNames (
> -    ACPI_NAMESPACE_NODE     *Node,
> -    ACPI_PARSE_OBJECT       *Op);
>=20
> =
/*************************************************************************=
******
>  *
> @@ -252,8 +247,7 @@ LdLoadNamespace (
>  *
>  * FUNCTION:    LdLoadFieldElements
>  *
> - * PARAMETERS:  AmlType         - Type to search
> - *              Op              - Parent node (Field)
> + * PARAMETERS:  Op              - Parent node (Field)
>  *              WalkState       - Current walk state
>  *
>  * RETURN:      Status
> @@ -265,7 +259,6 @@ LdLoadNamespace (
>=20
> static ACPI_STATUS
> LdLoadFieldElements (
> -    UINT32                  AmlType,
>     ACPI_PARSE_OBJECT       *Op,
>     ACPI_WALK_STATE         *WalkState)
> {
> @@ -281,7 +274,7 @@ LdLoadFieldElements (
>     {
>         Status =3D AcpiNsLookup (WalkState->ScopeInfo,
>             SourceRegion->Asl.Value.String,
> -            AmlType, ACPI_IMODE_EXECUTE,
> +            ACPI_TYPE_REGION, ACPI_IMODE_EXECUTE,
>             ACPI_NS_DONT_OPEN_SCOPE, NULL, &Node);
>         if (Status =3D=3D AE_NOT_FOUND)
>         {
> @@ -514,15 +507,11 @@ LdNamespace1Begin (
>      */
>     switch (Op->Asl.AmlOpcode)
>     {
> -    case AML_INDEX_FIELD_OP:
> -
> -        Status =3D LdLoadFieldElements (ACPI_TYPE_LOCAL_REGION_FIELD, =
Op, WalkState);
> -        return (Status);
> -
>     case AML_BANK_FIELD_OP:
> +    case AML_INDEX_FIELD_OP:
>     case AML_FIELD_OP:
>=20
> -        Status =3D LdLoadFieldElements (ACPI_TYPE_REGION, Op, =
WalkState);
> +        Status =3D LdLoadFieldElements (Op, WalkState);
>         return (Status);
>=20
>     case AML_INT_CONNECTION_OP:
> @@ -977,10 +966,6 @@ LdNamespace1Begin (
>         }
>     }
>=20
> -    /* Check special names like _WAK and _PTS */
> -
> -    LdCheckSpecialNames (Node, Op);
> -
>     if (ForceNewScope)
>     {
>         Status =3D AcpiDsScopeStackPush (Node, ObjectType, WalkState);
> @@ -1016,42 +1001,6 @@ FinishNode:
>     }
>=20
>     return_ACPI_STATUS (Status);
> -}
> -
> -
> =
-/************************************************************************=
*******
> - *
> - * FUNCTION:    LdCheckSpecialNames
> - *
> - * PARAMETERS:  Node        - Node that represents the named object
> - *              Op          - Named object declaring this named =
object
> - *
> - * RETURN:      None
> - *
> - * DESCRIPTION: Check if certain named objects are declared in the =
incorrect
> - *              scope. Special named objects are listed in
> - *              AslGbl_SpecialNamedObjects and can only be declared =
at the root
> - *              scope.
> - *
> - =
**************************************************************************=
****/
> -
> -static void
> -LdCheckSpecialNames (
> -    ACPI_NAMESPACE_NODE     *Node,
> -    ACPI_PARSE_OBJECT       *Op)
> -{
> -    UINT32                  i;
> -
> -
> -    for (i =3D 0; i < MAX_SPECIAL_NAMES; i++)
> -    {
> -        if (ACPI_COMPARE_NAMESEG(Node->Name.Ascii, =
AslGbl_SpecialNamedObjects[i]) &&
> -            Node->Parent !=3D AcpiGbl_RootNode)
> -        {
> -            AslError (ASL_ERROR, ASL_MSG_INVALID_SPECIAL_NAME, Op, =
Op->Asl.ExternalName);
> -            return;
> -        }
> -    }
> }
>=20
>=20
>=20
> Modified: head/sys/contrib/dev/acpica/compiler/aslmessages.c
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/contrib/dev/acpica/compiler/aslmessages.c	Thu Aug  =
1 17:37:25 2019	(r350509)
> +++ head/sys/contrib/dev/acpica/compiler/aslmessages.c	Thu Aug  =
1 17:45:43 2019	(r350510)
> @@ -365,8 +365,7 @@ const char                      *AslCompilerMsgs =
[] =3D
> /*    ASL_MSG_REGION_LENGTH */              "Operation Region declared =
with zero length",
> /*    ASL_MSG_TEMPORARY_OBJECT */           "Object is created =
temporarily in another method and cannot be accessed",
> /*    ASL_MSG_UNDEFINED_EXTERNAL */         "Named object was declared =
external but the actual definition does not exist",
> -/*    ASL_MSG_BUFFER_FIELD_OVERFLOW */      "Buffer field extends =
beyond end of target buffer",
> -/*    ASL_MSG_INVALID_SPECIAL_NAME */       "declaration of this =
named object outside root scope is illegal"
> +/*    ASL_MSG_BUFFER_FIELD_OVERFLOW */        "Buffer field extends =
beyond end of target buffer"
> };
>=20
> /* Table compiler */
>=20
> Modified: head/sys/contrib/dev/acpica/compiler/aslmessages.h
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/contrib/dev/acpica/compiler/aslmessages.h	Thu Aug  =
1 17:37:25 2019	(r350509)
> +++ head/sys/contrib/dev/acpica/compiler/aslmessages.h	Thu Aug  =
1 17:45:43 2019	(r350510)
> @@ -368,7 +368,6 @@ typedef enum
>     ASL_MSG_TEMPORARY_OBJECT,
>     ASL_MSG_UNDEFINED_EXTERNAL,
>     ASL_MSG_BUFFER_FIELD_OVERFLOW,
> -    ASL_MSG_INVALID_SPECIAL_NAME,
>=20
>     /* These messages are used by the Data Table compiler only */
>=20
>=20
> Modified: head/sys/contrib/dev/acpica/compiler/aslstubs.c
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/contrib/dev/acpica/compiler/aslstubs.c	Thu Aug  1 =
17:37:25 2019	(r350509)
> +++ head/sys/contrib/dev/acpica/compiler/aslstubs.c	Thu Aug  1 =
17:45:43 2019	(r350510)
> @@ -166,6 +166,12 @@
>  * Things like Events, Global Lock, etc. are not used
>  * by the compiler, so they are stubbed out here.
>  */
> +void
> +AcpiNsExecModuleCodeList (
> +    void)
> +{
> +}
> +
> ACPI_STATUS
> AcpiNsInitializeObjects (
>     void)
>=20
> Modified: head/sys/contrib/dev/acpica/compiler/aslsupport.l
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/contrib/dev/acpica/compiler/aslsupport.l	Thu Aug  1 =
17:37:25 2019	(r350509)
> +++ head/sys/contrib/dev/acpica/compiler/aslsupport.l	Thu Aug  1 =
17:45:43 2019	(r350510)
> @@ -220,7 +220,7 @@ AslDoLineDirective (
>=20
>     while ((c =3D input()) !=3D '\n' && c !=3D EOF)
>     {
> -        *AslGbl_LineBufPtr =3D (char) c;
> +        *AslGbl_LineBufPtr =3D c;
>         AslGbl_LineBufPtr++;
>     }
>     *AslGbl_LineBufPtr =3D 0;
> @@ -498,7 +498,7 @@ AslInsertLineBuffer (
>=20
>         if (AcpiGbl_CaptureComments)
>         {
> -            CvProcessCommentState ((char) SourceChar);
> +            CvProcessCommentState (SourceChar);
>         }
>     }
> }
> @@ -601,7 +601,7 @@ loop:
>         AslInsertLineBuffer (c);
>         if (AcpiGbl_CaptureComments && CurrentState.CaptureComments)
>         {
> -            *StringBuffer =3D (char) c;
> +            *StringBuffer =3D c;
>             ++StringBuffer;
>         }
>         c1 =3D c;
> @@ -629,7 +629,7 @@ loop:
>     AslInsertLineBuffer (c);
>     if (AcpiGbl_CaptureComments && CurrentState.CaptureComments)
>     {
> -        *StringBuffer =3D (char) c;
> +        *StringBuffer =3D c;
>         ++StringBuffer;
>     }
>=20
> @@ -720,7 +720,7 @@ AslDoCommentType2 (
>         AslInsertLineBuffer (c);
>         if (AcpiGbl_CaptureComments && CurrentState.CaptureComments)
>         {
> -            *StringBuffer =3D (char) c;
> +            *StringBuffer =3D c;
>             ++StringBuffer;
>         }
>     }
> @@ -878,7 +878,7 @@ DoCharacter:
>                 if (ACPI_IS_OCTAL_DIGIT (StringChar))
>                 {
>                     State =3D ASL_OCTAL_CONSTANT;
> -                    ConvertBuffer[0] =3D (char) StringChar;
> +                    ConvertBuffer[0] =3D StringChar;
>                     i =3D 1;
>                     continue;
>                 }
> @@ -934,7 +934,7 @@ DoCharacter:
>=20
>             /* Append another digit of the constant */
>=20
> -            ConvertBuffer[i] =3D (char) StringChar;
> +            ConvertBuffer[i] =3D StringChar;
>             i++;
>             continue;
>=20
> @@ -978,7 +978,7 @@ DoCharacter:
>=20
>             /* Append another digit of the constant */
>=20
> -            ConvertBuffer[i] =3D (char) StringChar;
> +            ConvertBuffer[i] =3D StringChar;
>             i++;
>             continue;
>=20
> @@ -989,7 +989,7 @@ DoCharacter:
>=20
>         /* Save the finished character */
>=20
> -        *StringBuffer =3D (char) StringChar;
> +        *StringBuffer =3D StringChar;
>         StringBuffer++;
>         if (StringBuffer >=3D EndBuffer)
>         {
>=20
> Modified: head/sys/contrib/dev/acpica/components/dispatcher/dsinit.c
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/contrib/dev/acpica/components/dispatcher/dsinit.c	=
Thu Aug  1 17:37:25 2019	(r350509)
> +++ head/sys/contrib/dev/acpica/components/dispatcher/dsinit.c	=
Thu Aug  1 17:45:43 2019	(r350510)
> @@ -362,7 +362,7 @@ AcpiDsInitializeObjects (
>     if (ACPI_COMPARE_NAMESEG (Table->Signature, ACPI_SIG_DSDT))
>     {
>         ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT,
> -            "\nACPI table initialization:\n"));
> +            "\nInitializing Namespace objects:\n"));
>     }
>=20
>     /* Summary of objects initialized */
>=20
> Modified: head/sys/contrib/dev/acpica/components/events/evgpe.c
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/contrib/dev/acpica/components/events/evgpe.c	Thu Aug  =
1 17:37:25 2019	(r350509)
> +++ head/sys/contrib/dev/acpica/components/events/evgpe.c	Thu Aug  =
1 17:45:43 2019	(r350510)
> @@ -316,7 +316,6 @@ AcpiEvMaskGpe (
>  * FUNCTION:    AcpiEvAddGpeReference
>  *
>  * PARAMETERS:  GpeEventInfo            - Add a reference to this GPE
> - *              ClearOnEnable           - Clear GPE status before =
enabling it
>  *
>  * RETURN:      Status
>  *
> @@ -327,8 +326,7 @@ AcpiEvMaskGpe (
>=20
> ACPI_STATUS
> AcpiEvAddGpeReference (
> -    ACPI_GPE_EVENT_INFO     *GpeEventInfo,
> -    BOOLEAN                 ClearOnEnable)
> +    ACPI_GPE_EVENT_INFO     *GpeEventInfo)
> {
>     ACPI_STATUS             Status =3D AE_OK;
>=20
> @@ -345,11 +343,6 @@ AcpiEvAddGpeReference (
>     if (GpeEventInfo->RuntimeCount =3D=3D 1)
>     {
>         /* Enable on first reference */
> -
> -        if (ClearOnEnable)
> -        {
> -            (void) AcpiHwClearGpe (GpeEventInfo);
> -        }
>=20
>         Status =3D AcpiEvUpdateGpeEnableMask (GpeEventInfo);
>         if (ACPI_SUCCESS (Status))
>=20
> Modified: head/sys/contrib/dev/acpica/components/events/evgpeblk.c
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/contrib/dev/acpica/components/events/evgpeblk.c	Thu Aug  =
1 17:37:25 2019	(r350509)
> +++ head/sys/contrib/dev/acpica/components/events/evgpeblk.c	Thu Aug  =
1 17:45:43 2019	(r350510)
> @@ -637,7 +637,7 @@ AcpiEvInitializeGpeBlock (
>                 continue;
>             }
>=20
> -            Status =3D AcpiEvAddGpeReference (GpeEventInfo, FALSE);
> +            Status =3D AcpiEvAddGpeReference (GpeEventInfo);
>             if (ACPI_FAILURE (Status))
>             {
>                 ACPI_EXCEPTION ((AE_INFO, Status,
>=20
> Modified: head/sys/contrib/dev/acpica/components/events/evxface.c
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/contrib/dev/acpica/components/events/evxface.c	Thu Aug  =
1 17:37:25 2019	(r350509)
> +++ head/sys/contrib/dev/acpica/components/events/evxface.c	Thu Aug  =
1 17:45:43 2019	(r350510)
> @@ -1256,7 +1256,7 @@ AcpiRemoveGpeHandler (
>             ACPI_GPE_DISPATCH_NOTIFY)) &&
>         Handler->OriginallyEnabled)
>     {
> -        (void) AcpiEvAddGpeReference (GpeEventInfo, FALSE);
> +        (void) AcpiEvAddGpeReference (GpeEventInfo);
>         if (ACPI_GPE_IS_POLLING_NEEDED (GpeEventInfo))
>         {
>             /* Poll edge triggered GPEs to handle existing events */
>=20
> Modified: head/sys/contrib/dev/acpica/components/events/evxfgpe.c
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/contrib/dev/acpica/components/events/evxfgpe.c	Thu Aug  =
1 17:37:25 2019	(r350509)
> +++ head/sys/contrib/dev/acpica/components/events/evxfgpe.c	Thu Aug  =
1 17:45:43 2019	(r350510)
> @@ -267,7 +267,7 @@ AcpiEnableGpe (
>         if (ACPI_GPE_DISPATCH_TYPE (GpeEventInfo->Flags) !=3D
>             ACPI_GPE_DISPATCH_NONE)
>         {
> -            Status =3D AcpiEvAddGpeReference (GpeEventInfo, TRUE);
> +            Status =3D AcpiEvAddGpeReference (GpeEventInfo);
>             if (ACPI_SUCCESS (Status) &&
>                 ACPI_GPE_IS_POLLING_NEEDED (GpeEventInfo))
>             {
>=20
> Modified: head/sys/contrib/dev/acpica/components/executer/exconfig.c
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/contrib/dev/acpica/components/executer/exconfig.c	=
Thu Aug  1 17:37:25 2019	(r350509)
> +++ head/sys/contrib/dev/acpica/components/executer/exconfig.c	=
Thu Aug  1 17:45:43 2019	(r350510)
> @@ -342,9 +342,10 @@ AcpiExLoadTableOp (
>         return_ACPI_STATUS (Status);
>     }
>=20
> -    /* Complete the initialization/resolution of new objects */
> +    /* Complete the initialization/resolution of package objects */
>=20
> -    AcpiNsInitializeObjects ();
> +    Status =3D AcpiNsWalkNamespace (ACPI_TYPE_PACKAGE, =
ACPI_ROOT_OBJECT,
> +        ACPI_UINT32_MAX, 0, AcpiNsInitOnePackage, NULL, NULL, NULL);
>=20
>     /* Parameter Data (optional) */
>=20
> @@ -619,11 +620,10 @@ AcpiExLoadOp (
>         return_ACPI_STATUS (Status);
>     }
>=20
> -    /* Complete the initialization/resolution of new objects */
> +    /* Complete the initialization/resolution of package objects */
>=20
> -    AcpiExExitInterpreter ();
> -    AcpiNsInitializeObjects ();
> -    AcpiExEnterInterpreter ();
> +    Status =3D AcpiNsWalkNamespace (ACPI_TYPE_PACKAGE, =
ACPI_ROOT_OBJECT,
> +        ACPI_UINT32_MAX, 0, AcpiNsInitOnePackage, NULL, NULL, NULL);
>=20
>     /* Store the DdbHandle into the Target operand */
>=20
>=20
> Modified: head/sys/contrib/dev/acpica/components/namespace/nsaccess.c
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/contrib/dev/acpica/components/namespace/nsaccess.c	=
Thu Aug  1 17:37:25 2019	(r350509)
> +++ head/sys/contrib/dev/acpica/components/namespace/nsaccess.c	=
Thu Aug  1 17:45:43 2019	(r350510)
> @@ -184,7 +184,6 @@ AcpiNsRootInitialize (
>     ACPI_STATUS                 Status;
>     const ACPI_PREDEFINED_NAMES *InitVal =3D NULL;
>     ACPI_NAMESPACE_NODE         *NewNode;
> -    ACPI_NAMESPACE_NODE         *PrevNode =3D NULL;
>     ACPI_OPERAND_OBJECT         *ObjDesc;
>     ACPI_STRING                 Val =3D NULL;
>=20
> @@ -214,30 +213,13 @@ AcpiNsRootInitialize (
>      */
>     AcpiGbl_RootNode =3D &AcpiGbl_RootNodeStruct;
>=20
> -    /* Enter the predefined names in the name table */
> +    /* Enter the pre-defined names in the name table */
>=20
>     ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
>         "Entering predefined entries into namespace\n"));
>=20
> -    /*
> -     * Create the initial (default) namespace.
> -     * This namespace looks like something similar to this:
> -     *
> -     *   ACPI Namespace (from Namespace Root):
> -     *    0  _GPE Scope        00203160 00
> -     *    0  _PR_ Scope        002031D0 00
> -     *    0  _SB_ Device       00203240 00 Notify Object: 0020ADD8
> -     *    0  _SI_ Scope        002032B0 00
> -     *    0  _TZ_ Device       00203320 00
> -     *    0  _REV Integer      00203390 00 =3D 0000000000000002
> -     *    0  _OS_ String       00203488 00 Len 14 "Microsoft Windows =
NT"
> -     *    0  _GL_ Mutex        00203580 00 Object 002035F0
> -     *    0  _OSI Method       00203678 00 Args 1 Len 0000 Aml =
00000000
> -     */
>     for (InitVal =3D AcpiGbl_PreDefinedNames; InitVal->Name; =
InitVal++)
>     {
> -        Status =3D AE_OK;
> -
>         /* _OSI is optional for now, will be permanent later */
>=20
>         if (!strcmp (InitVal->Name, "_OSI") && =
!AcpiGbl_CreateOsiMethod)
> @@ -245,35 +227,17 @@ AcpiNsRootInitialize (
>             continue;
>         }
>=20
> -        /*
> -         * Create, init, and link the new predefined name
> -         * Note: No need to use AcpiNsLookup here because all the
> -         * predefined names are at the root level. It is much easier =
to
> -         * just create and link the new node(s) here.
> -         */
> -        NewNode =3D ACPI_ALLOCATE_ZEROED (sizeof =
(ACPI_NAMESPACE_NODE));
> -        if (!NewNode)
> +        Status =3D AcpiNsLookup (NULL, ACPI_CAST_PTR (char, =
InitVal->Name),
> +            InitVal->Type, ACPI_IMODE_LOAD_PASS2, =
ACPI_NS_NO_UPSEARCH,
> +            NULL, &NewNode);
> +        if (ACPI_FAILURE (Status))
>         {
> -            Status =3D AE_NO_MEMORY;
> -            goto UnlockAndExit;
> +            ACPI_EXCEPTION ((AE_INFO, Status,
> +                "Could not create predefined name %s",
> +                InitVal->Name));
> +            continue;
>         }
>=20
> -        ACPI_COPY_NAMESEG (NewNode->Name.Ascii, InitVal->Name);
> -        NewNode->DescriptorType =3D ACPI_DESC_TYPE_NAMED;
> -        NewNode->Type =3D InitVal->Type;
> -
> -        if (!PrevNode)
> -        {
> -            AcpiGbl_RootNodeStruct.Child =3D NewNode;
> -        }
> -        else
> -        {
> -            PrevNode->Peer =3D NewNode;
> -        }
> -
> -        NewNode->Parent =3D &AcpiGbl_RootNodeStruct;
> -        PrevNode =3D NewNode;
> -
>         /*
>          * Name entered successfully. If entry in PreDefinedNames[] =
specifies
>          * an initial value, create the initial value.
> @@ -322,7 +286,7 @@ AcpiNsRootInitialize (
>=20
>                 NewNode->Value =3D ObjDesc->Method.ParamCount;
> #else
> -                /* Mark this as a very SPECIAL method (_OSI) */
> +                /* Mark this as a very SPECIAL method */
>=20
>                 ObjDesc->Method.InfoFlags =3D =
ACPI_METHOD_INTERNAL_ONLY;
>                 ObjDesc->Method.Dispatch.Implementation =3D =
AcpiUtOsiImplementation;
> @@ -394,6 +358,7 @@ AcpiNsRootInitialize (
>             AcpiUtRemoveReference (ObjDesc);
>         }
>     }
> +
>=20
> UnlockAndExit:
>     (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE);
>=20
> Modified: head/sys/contrib/dev/acpica/components/namespace/nseval.c
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/contrib/dev/acpica/components/namespace/nseval.c	Thu Aug  =
1 17:37:25 2019	(r350509)
> +++ head/sys/contrib/dev/acpica/components/namespace/nseval.c	Thu Aug  =
1 17:45:43 2019	(r350510)
> @@ -160,7 +160,14 @@
> #define _COMPONENT          ACPI_NAMESPACE
>         ACPI_MODULE_NAME    ("nseval")
>=20
> +/* Local prototypes */
>=20
> +static void
> +AcpiNsExecModuleCode (
> +    ACPI_OPERAND_OBJECT     *MethodObj,
> +    ACPI_EVALUATE_INFO      *Info);
> +
> +
> =
/*************************************************************************=
******
>  *
>  * FUNCTION:    AcpiNsEvaluate
> @@ -457,4 +464,207 @@ Cleanup:
>     ACPI_FREE (Info->FullPathname);
>     Info->FullPathname =3D NULL;
>     return_ACPI_STATUS (Status);
> +}
> +
> +
> =
+/************************************************************************=
*******
> + *
> + * FUNCTION:    AcpiNsExecModuleCodeList
> + *
> + * PARAMETERS:  None
> + *
> + * RETURN:      None. Exceptions during method execution are ignored, =
since
> + *              we cannot abort a table load.
> + *
> + * DESCRIPTION: Execute all elements of the global module-level code =
list.
> + *              Each element is executed as a single control method.
> + *
> + * NOTE: With this option enabled, each block of detected executable =
AML
> + * code that is outside of any control method is wrapped with a =
temporary
> + * control method object and placed on a global list. The methods on =
this
> + * list are executed below.
> + *
> + * This function executes the module-level code for all tables only =
after
> + * all of the tables have been loaded. It is a legacy option and is
> + * not compatible with other ACPI implementations. See =
AcpiNsLoadTable.
> + *
> + * This function will be removed when the legacy option is removed.
> + *
> + =
**************************************************************************=
****/
> +
> +void
> +AcpiNsExecModuleCodeList (
> +    void)
> +{
> +    ACPI_OPERAND_OBJECT     *Prev;
> +    ACPI_OPERAND_OBJECT     *Next;
> +    ACPI_EVALUATE_INFO      *Info;
> +    UINT32                  MethodCount =3D 0;
> +
> +
> +    ACPI_FUNCTION_TRACE (NsExecModuleCodeList);
> +
> +
> +    /* Exit now if the list is empty */
> +
> +    Next =3D AcpiGbl_ModuleCodeList;
> +    if (!Next)
> +    {
> +        ACPI_DEBUG_PRINT ((ACPI_DB_INIT_NAMES,
> +            "Legacy MLC block list is empty\n"));
> +
> +        return_VOID;
> +    }
> +
> +    /* Allocate the evaluation information block */
> +
> +    Info =3D ACPI_ALLOCATE (sizeof (ACPI_EVALUATE_INFO));
> +    if (!Info)
> +    {
> +        return_VOID;
> +    }
> +
> +    /* Walk the list, executing each "method" */
> +
> +    while (Next)
> +    {
> +        Prev =3D Next;
> +        Next =3D Next->Method.Mutex;
> +
> +        /* Clear the link field and execute the method */
> +
> +        Prev->Method.Mutex =3D NULL;
> +        AcpiNsExecModuleCode (Prev, Info);
> +        MethodCount++;
> +
> +        /* Delete the (temporary) method object */
> +
> +        AcpiUtRemoveReference (Prev);
> +    }
> +
> +    ACPI_INFO ((
> +        "Executed %u blocks of module-level executable AML code",
> +        MethodCount));
> +
> +    ACPI_FREE (Info);
> +    AcpiGbl_ModuleCodeList =3D NULL;
> +    return_VOID;
> +}
> +
> +
> =
+/************************************************************************=
*******
> + *
> + * FUNCTION:    AcpiNsExecModuleCode
> + *
> + * PARAMETERS:  MethodObj           - Object container for the =
module-level code
> + *              Info                - Info block for method =
evaluation
> + *
> + * RETURN:      None. Exceptions during method execution are ignored, =
since
> + *              we cannot abort a table load.
> + *
> + * DESCRIPTION: Execute a control method containing a block of =
module-level
> + *              executable AML code. The control method is =
temporarily
> + *              installed to the root node, then evaluated.
> + *
> + =
**************************************************************************=
****/
> +
> +static void
> +AcpiNsExecModuleCode (
> +    ACPI_OPERAND_OBJECT     *MethodObj,
> +    ACPI_EVALUATE_INFO      *Info)
> +{
> +    ACPI_OPERAND_OBJECT     *ParentObj;
> +    ACPI_NAMESPACE_NODE     *ParentNode;
> +    ACPI_OBJECT_TYPE        Type;
> +    ACPI_STATUS             Status;
> +
> +
> +    ACPI_FUNCTION_TRACE (NsExecModuleCode);
> +
> +
> +    /*
> +     * Get the parent node. We cheat by using the NextObject field
> +     * of the method object descriptor.
> +     */
> +    ParentNode =3D ACPI_CAST_PTR (
> +        ACPI_NAMESPACE_NODE, MethodObj->Method.NextObject);
> +    Type =3D AcpiNsGetType (ParentNode);
> +
> +    /*
> +     * Get the region handler and save it in the method object. We =
may need
> +     * this if an operation region declaration causes a _REG method =
to be run.
> +     *
> +     * We can't do this in AcpiPsLinkModuleCode because
> +     * AcpiGbl_RootNode->Object is NULL at PASS1.
> +     */
> +    if ((Type =3D=3D ACPI_TYPE_DEVICE) && ParentNode->Object)
> +    {
> +        MethodObj->Method.Dispatch.Handler =3D
> +            ParentNode->Object->Device.Handler;
> +    }
> +
> +    /* Must clear NextObject (AcpiNsAttachObject needs the field) */
> +
> +    MethodObj->Method.NextObject =3D NULL;
> +
> +    /* Initialize the evaluation information block */
> +
> +    memset (Info, 0, sizeof (ACPI_EVALUATE_INFO));
> +    Info->PrefixNode =3D ParentNode;
> +
> +    /*
> +     * Get the currently attached parent object. Add a reference,
> +     * because the ref count will be decreased when the method object
> +     * is installed to the parent node.
> +     */
> +    ParentObj =3D AcpiNsGetAttachedObject (ParentNode);
> +    if (ParentObj)
> +    {
> +        AcpiUtAddReference (ParentObj);
> +    }
> +
> +    /* Install the method (module-level code) in the parent node */
> +
> +    Status =3D AcpiNsAttachObject (ParentNode, MethodObj, =
ACPI_TYPE_METHOD);
> +    if (ACPI_FAILURE (Status))
> +    {
> +        goto Exit;
> +    }
> +
> +    /* Execute the parent node as a control method */
> +
> +    Status =3D AcpiNsEvaluate (Info);
> +
> +    ACPI_DEBUG_PRINT ((ACPI_DB_INIT_NAMES,
> +        "Executed module-level code at %p\n",
> +        MethodObj->Method.AmlStart));
> +
> +    /* Delete a possible implicit return value (in slack mode) */
> +
> +    if (Info->ReturnObject)
> +    {
> +        AcpiUtRemoveReference (Info->ReturnObject);
> +    }
> +
> +    /* Detach the temporary method object */
> +
> +    AcpiNsDetachObject (ParentNode);
> +
> +    /* Restore the original parent object */
> +
> +    if (ParentObj)
> +    {
> +        Status =3D AcpiNsAttachObject (ParentNode, ParentObj, Type);
> +    }
> +    else
> +    {
> +        ParentNode->Type =3D (UINT8) Type;
> +    }
> +
> +Exit:
> +    if (ParentObj)
> +    {
> +        AcpiUtRemoveReference (ParentObj);
> +    }
> +    return_VOID;
> }
>=20
> Modified: head/sys/contrib/dev/acpica/components/namespace/nsinit.c
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/contrib/dev/acpica/components/namespace/nsinit.c	Thu Aug  =
1 17:37:25 2019	(r350509)
> +++ head/sys/contrib/dev/acpica/components/namespace/nsinit.c	Thu Aug  =
1 17:45:43 2019	(r350510)
> @@ -212,30 +212,29 @@ AcpiNsInitializeObjects (
>     ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
>         "**** Starting initialization of namespace objects ****\n"));
>     ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT,
> -        "Final data object initialization: "));
> +        "Completing Region/Field/Buffer/Package initialization:\n"));
>=20
> -    /* Clear the info block */
> +    /* Set all init info to zero */
>=20
>     memset (&Info, 0, sizeof (ACPI_INIT_WALK_INFO));
>=20
>     /* Walk entire namespace from the supplied root */
>=20
> -    /*
> -     * TBD: will become ACPI_TYPE_PACKAGE as this type object
> -     * is now the only one that supports deferred initialization
> -     * (forward references).
> -     */
>     Status =3D AcpiWalkNamespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT,
> -        ACPI_UINT32_MAX, AcpiNsInitOneObject, NULL, &Info, NULL);
> +        ACPI_UINT32_MAX, AcpiNsInitOneObject, NULL,
> +        &Info, NULL);
>     if (ACPI_FAILURE (Status))
>     {
>         ACPI_EXCEPTION ((AE_INFO, Status, "During WalkNamespace"));
>     }
>=20
>     ACPI_DEBUG_PRINT_RAW ((ACPI_DB_INIT,
> -        "Namespace contains %u (0x%X) objects\n",
> -        Info.ObjectCount,
> -        Info.ObjectCount));
> +        "    Initialized %u/%u Regions %u/%u Fields %u/%u "
> +        "Buffers %u/%u Packages (%u nodes)\n",
> +        Info.OpRegionInit,  Info.OpRegionCount,
> +        Info.FieldInit,     Info.FieldCount,
> +        Info.BufferInit,    Info.BufferCount,
> +        Info.PackageInit,   Info.PackageCount, Info.ObjectCount));
>=20
>     ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH,
>         "%u Control Methods found\n%u Op Regions found\n",
> @@ -562,19 +561,35 @@ AcpiNsInitOneObject (
>     AcpiExEnterInterpreter ();
>=20
>     /*
> -     * Only initialization of Package objects can be deferred, in =
order
> -     * to support forward references.
> +     * Each of these types can contain executable AML code within the
> +     * declaration.
>      */
>     switch (Type)
>     {
> -    case ACPI_TYPE_LOCAL_BANK_FIELD:
> +    case ACPI_TYPE_REGION:
>=20
> -        /* TBD: BankFields do not require deferred init, remove this =
code */
> +        Info->OpRegionInit++;
> +        Status =3D AcpiDsGetRegionArguments (ObjDesc);
> +        break;
>=20
> +    case ACPI_TYPE_BUFFER_FIELD:
> +
>         Info->FieldInit++;
> +        Status =3D AcpiDsGetBufferFieldArguments (ObjDesc);
> +        break;
> +
> +    case ACPI_TYPE_LOCAL_BANK_FIELD:
> +
> +        Info->FieldInit++;
>         Status =3D AcpiDsGetBankFieldArguments (ObjDesc);
>         break;
>=20
> +    case ACPI_TYPE_BUFFER:
> +
> +        Info->BufferInit++;
> +        Status =3D AcpiDsGetBufferArguments (ObjDesc);
> +        break;
> +
>     case ACPI_TYPE_PACKAGE:
>=20
>         /* Complete the initialization/resolution of the package =
object */
> @@ -585,12 +600,8 @@ AcpiNsInitOneObject (
>=20
>     default:
>=20
> -        /* No other types should get here */
> +        /* No other types can get here */
>=20
> -        Status =3D AE_TYPE;
> -        ACPI_EXCEPTION ((AE_INFO, Status,
> -            "Opcode is not deferred [%4.4s] (%s)",
> -            AcpiUtGetNodeName (Node), AcpiUtGetTypeName (Type)));
>         break;
>     }
>=20
>=20
> Modified: head/sys/contrib/dev/acpica/components/namespace/nsload.c
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/contrib/dev/acpica/components/namespace/nsload.c	Thu Aug  =
1 17:37:25 2019	(r350509)
> +++ head/sys/contrib/dev/acpica/components/namespace/nsload.c	Thu Aug  =
1 17:45:43 2019	(r350510)
> @@ -268,6 +268,18 @@ Unlock:
>     ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
>         "**** Completed Table Object Initialization\n"));
>=20
> +    /*
> +     * This case handles the legacy option that groups all =
module-level
> +     * code blocks together and defers execution until all of the =
tables
> +     * are loaded. Execute all of these blocks at this time.
> +     * Execute any module-level code that was detected during the =
table
> +     * load phase.
> +     *
> +     * Note: this option is deprecated and will be eliminated in the
> +     * future. Use of this option can cause problems with AML code =
that
> +     * depends upon in-order immediate execution of module-level =
code.
> +     */
> +    AcpiNsExecModuleCodeList ();
>     return_ACPI_STATUS (Status);
> }
>=20
>=20
> Modified: head/sys/contrib/dev/acpica/components/namespace/nsutils.c
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/contrib/dev/acpica/components/namespace/nsutils.c	=
Thu Aug  1 17:37:25 2019	(r350509)
> +++ head/sys/contrib/dev/acpica/components/namespace/nsutils.c	=
Thu Aug  1 17:45:43 2019	(r350510)
> @@ -802,10 +802,23 @@ AcpiNsTerminate (
>     void)
> {
>     ACPI_STATUS             Status;
> +    ACPI_OPERAND_OBJECT     *Prev;
> +    ACPI_OPERAND_OBJECT     *Next;
>=20
>=20
>     ACPI_FUNCTION_TRACE (NsTerminate);
>=20
> +
> +    /* Delete any module-level code blocks */
> +
> +    Next =3D AcpiGbl_ModuleCodeList;
> +    while (Next)
> +    {
> +        Prev =3D Next;
> +        Next =3D Next->Method.Mutex;
> +        Prev->Method.Mutex =3D NULL; /* Clear the Mutex (cheated) =
field */
> +        AcpiUtRemoveReference (Prev);
> +    }
>=20
>     /*
>      * Free the entire namespace -- all nodes and all objects
>=20
> Modified: head/sys/contrib/dev/acpica/components/tables/tbdata.c
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/contrib/dev/acpica/components/tables/tbdata.c	Thu Aug  =
1 17:37:25 2019	(r350509)
> +++ head/sys/contrib/dev/acpica/components/tables/tbdata.c	Thu Aug  =
1 17:45:43 2019	(r350510)
> @@ -1191,6 +1191,19 @@ AcpiTbLoadTable (
>     Status =3D AcpiNsLoadTable (TableIndex, ParentNode);
>=20
>     /*
> +     * This case handles the legacy option that groups all =
module-level
> +     * code blocks together and defers execution until all of the =
tables
> +     * are loaded. Execute all of these blocks at this time.
> +     * Execute any module-level code that was detected during the =
table
> +     * load phase.
> +     *
> +     * Note: this option is deprecated and will be eliminated in the
> +     * future. Use of this option can cause problems with AML code =
that
> +     * depends upon in-order immediate execution of module-level =
code.
> +     */
> +    AcpiNsExecModuleCodeList ();
> +
> +    /*
>      * Update GPEs for any new _Lxx/_Exx methods. Ignore errors. The =
host is
>      * responsible for discovering any new wake GPEs by running _PRW =
methods
>      * that may have been loaded by this table.
>=20
> Modified: head/sys/contrib/dev/acpica/components/tables/tbxfload.c
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/contrib/dev/acpica/components/tables/tbxfload.c	Thu Aug  =
1 17:37:25 2019	(r350509)
> +++ head/sys/contrib/dev/acpica/components/tables/tbxfload.c	Thu Aug  =
1 17:45:43 2019	(r350510)
> @@ -479,13 +479,6 @@ AcpiLoadTable (
>     ACPI_INFO (("Host-directed Dynamic ACPI Table Load:"));
>     Status =3D AcpiTbInstallAndLoadTable (ACPI_PTR_TO_PHYSADDR =
(Table),
>         ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL, FALSE, &TableIndex);
> -    if (ACPI_SUCCESS (Status))
> -    {
> -        /* Complete the initialization/resolution of new objects */
> -
> -        AcpiNsInitializeObjects ();
> -    }
> -
>     return_ACPI_STATUS (Status);
> }
>=20
>=20
> Modified: head/sys/contrib/dev/acpica/components/utilities/utinit.c
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/contrib/dev/acpica/components/utilities/utinit.c	Thu Aug  =
1 17:37:25 2019	(r350509)
> +++ head/sys/contrib/dev/acpica/components/utilities/utinit.c	Thu Aug  =
1 17:45:43 2019	(r350510)
> @@ -342,6 +342,7 @@ AcpiUtInitGlobals (
>=20
>     /* Namespace */
>=20
> +    AcpiGbl_ModuleCodeList              =3D NULL;
>     AcpiGbl_RootNode                    =3D NULL;
>     AcpiGbl_RootNodeStruct.Name.Integer =3D ACPI_ROOT_NAME;
>     AcpiGbl_RootNodeStruct.DescriptorType =3D ACPI_DESC_TYPE_NAMED;
>=20
> Modified: head/sys/contrib/dev/acpica/components/utilities/utxfinit.c
> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> --- head/sys/contrib/dev/acpica/components/utilities/utxfinit.c	=
Thu Aug  1 17:37:25 2019	(r350509)
> +++ head/sys/contrib/dev/acpica/components/utilities/utxfinit.c	=
Thu Aug  1 17:45:43 2019	(r350510)
> @@ -381,17 +381,24 @@ AcpiInitializeObjects (
>     ACPI_FUNCTION_TRACE (AcpiInitializeObjects);
>=20
>=20
> -#ifdef ACPI_OBSOLETE_BEHAVIOR
>     /*
> -     * 05/2019: Removed, initialization now happens at both object
> -     * creation and table load time
> +     * This case handles the legacy option that groups all =
module-level
> +     * code blocks together and defers execution until all of the =
tables
> +     * are loaded. Execute all of these blocks at this time.
> +     * Execute any module-level code that was detected during the =
table
> +     * load phase.
> +     *
> +     * Note: this option is deprecated and will be eliminated in the
> +     * future. Use of this option can cause problems with AML code =
that
> +     * depends upon in-order immediate execution of module-level =
code.
>      */
> +    AcpiNsExecModuleCodeList ();
>=20
>     /*
>      * Initialize the objects that remain uninitialized. This
>      * runs the executable AML that may be part of the
> -     * declaration of these objects: OperationRegions, BufferFields,
>=20
> *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
>=20




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?58DA75EF-AFA5-42C3-B441-7A9018C8E134>