diff options
author | Erik Schmauss <erik.schmauss@intel.com> | 2018-08-10 14:43:00 -0700 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2018-08-14 23:49:13 +0200 |
commit | 77d4e0966a8a6f8a3aa9d27b067a1fc0ec10628d (patch) | |
tree | 37d09062dc984732812fadc92ad76129be3c2c9b /drivers/acpi/acpica/nsaccess.c | |
parent | fb2ef998af44fb94214f3cf1c0e85d7a4e642fcb (diff) | |
download | lwn-77d4e0966a8a6f8a3aa9d27b067a1fc0ec10628d.tar.gz lwn-77d4e0966a8a6f8a3aa9d27b067a1fc0ec10628d.zip |
ACPICA: acpi_exec: fixing -fi option
Field elements listed in the init file used to be initialized after
the table load and before executing module-level code blocks. The
recent changes in module-level code mean that the table load becomes
a method execution. If fields are used within module-level code and
we are executing with -fi option, then these values are populated
after the table has finished loading. This commit changes the
initialization of objects listed in the init file so that field unit
values are populated during the table load.
Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/acpi/acpica/nsaccess.c')
-rw-r--r-- | drivers/acpi/acpica/nsaccess.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/acpi/acpica/nsaccess.c b/drivers/acpi/acpica/nsaccess.c index 83a593e2155d..e3f10afde5ff 100644 --- a/drivers/acpi/acpica/nsaccess.c +++ b/drivers/acpi/acpica/nsaccess.c @@ -558,6 +558,14 @@ acpi_ns_lookup(union acpi_generic_state *scope_info, (char *)¤t_node->name, current_node)); } +#ifdef ACPI_EXEC_APP + if ((status == AE_ALREADY_EXISTS) && + (this_node->flags & ANOBJ_NODE_EARLY_INIT)) { + this_node->flags &= ~ANOBJ_NODE_EARLY_INIT; + status = AE_OK; + } +#endif + #ifdef ACPI_ASL_COMPILER /* * If this ACPI name already exists within the namespace as an @@ -676,6 +684,11 @@ acpi_ns_lookup(union acpi_generic_state *scope_info, } } } +#ifdef ACPI_EXEC_APP + if (flags & ACPI_NS_EARLY_INIT) { + this_node->flags |= ANOBJ_NODE_EARLY_INIT; + } +#endif *return_node = this_node; return_ACPI_STATUS(AE_OK); |