From owner-svn-src-head@freebsd.org Thu Aug 1 17:57:06 2019 Return-Path: Delivered-To: svn-src-head@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B76BBC3F0D; Thu, 1 Aug 2019 17:57:06 +0000 (UTC) (envelope-from scottl@samsco.org) Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 45zyfp585Mz41F2; Thu, 1 Aug 2019 17:57:06 +0000 (UTC) (envelope-from scottl@samsco.org) Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id CB1BC21D25; Thu, 1 Aug 2019 13:57:05 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute6.internal (MEProxy); Thu, 01 Aug 2019 13:57:05 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsco.org; h= content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; s=fm3; bh=Q aSzRFXG/BmaaQ7imkJ0aC2flTzI1A4kptLeIscD8Og=; b=nPX645gb/6dIKAwm5 WTLiRZ5hm1PWzzL1BDOzb10X/CUXZDdte6jkG86zNlSCZrQxbd5GEr7rwafI3MDP rj4D1FSTN0KLgdGsGxSNqP7a7dLd2pZjMI7/Z8+iPmbjU8TfAuhT0Ma3dtwmvQH+ 7EQR1e/iAmpPPOw+EC7x8onahRns5WE351cDYLQRR59XJZLRxLZWFLBLX7zCRKMM ELe6lueY8OHpjGuhEDe8iryuIj6jlr9cYqieVOks53KQ0Snj7pnUK5t+nbVPG1EK RGXHQVrUnIDLpDuCVb/3fvSMGzknO4eYwC2c4/Q6dFG7QHwwSyfNNyvVx0T6+bj6 DczJA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm3; bh=QaSzRFXG/BmaaQ7imkJ0aC2flTzI1A4kptLeIscD8 Og=; b=TSjuUy8VcI3zEPwQtWPqxyQ4O2L+Q4+wq4wDOENpAnMIFD707yas4PwMv BtPCF73Wf1QyhBXTTixhPXSRleVFNP1sGd4b4jXUHWwDt8GYd6GCfwQ2B7FNsfY+ o1YYf3pRJTCfybFMIhHnELdHQUbqT/86THiisCd1UHb9i4sUzZNVq/hgtGZflHfO uJ3cYabh95FhcBrkDP3HKG32XwDL10h8LGOY5Nmy0fRNbp4eDSZ2SAqJb7is2HTQ d8l/hk/0xNH2/5nM+kgL1uW0DaXybvgA/tpJmqYg6qH5GiYeASTqZaXeHUUN0AF7 ABNG0T7U2pfhUJpFpfxxnosI1Baaw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduvddrleejgdduudejucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurheptggguffhjgffgffkfhfvofesthhqmhdthhdtjeenucfhrhhomhepufgtohht thcunfhonhhguceoshgtohhtthhlsehsrghmshgtohdrohhrgheqnecuffhomhgrihhnpe hfrhgvvggsshgurdhorhhgnecukfhppeduledvrdehhedrheegrdehleenucfrrghrrghm pehmrghilhhfrhhomhepshgtohhtthhlsehsrghmshgtohdrohhrghenucevlhhushhtvg hrufhiiigvpedt X-ME-Proxy: Received: from [10.178.24.10] (unknown [192.55.54.59]) by mail.messagingengine.com (Postfix) with ESMTPA id ABD84380079; Thu, 1 Aug 2019 13:57:03 -0400 (EDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) 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 From: Scott Long In-Reply-To: <201908011745.x71HjhAC058358@repo.freebsd.org> Date: Thu, 1 Aug 2019 11:57:02 -0600 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <58DA75EF-AFA5-42C3-B441-7A9018C8E134@samsco.org> References: <201908011745.x71HjhAC058358@repo.freebsd.org> To: Jung-uk Kim X-Mailer: Apple Mail (2.3445.104.11) X-Rspamd-Queue-Id: 45zyfp585Mz41F2 X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.91 / 15.00]; REPLY(-4.00)[]; NEURAL_HAM_SHORT(-0.91)[-0.905,0] X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Aug 2019 17:57:06 -0000 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 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