ACPICA: Change a compile-time option to a runtime option
Changes the option to ignore package resolution errors into a runtime option. Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Erik Schmauss <erik.schmauss@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
e7c2c3c909
commit
34f206fd75
|
@ -413,32 +413,32 @@ acpi_ds_resolve_package_element(union acpi_operand_object **element_ptr)
|
|||
|
||||
scope_info.scope.node = element->reference.node; /* Prefix node */
|
||||
|
||||
status = acpi_ns_lookup(&scope_info, (char *)element->reference.aml, /* Pointer to AML path */
|
||||
status = acpi_ns_lookup(&scope_info, (char *)element->reference.aml,
|
||||
ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE,
|
||||
ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE,
|
||||
NULL, &resolved_node);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
#if defined ACPI_IGNORE_PACKAGE_RESOLUTION_ERRORS && !defined ACPI_APPLICATION
|
||||
/*
|
||||
* For the kernel-resident ACPICA, optionally be silent about the
|
||||
* NOT_FOUND case. Although this is potentially a serious problem,
|
||||
* it can generate a lot of noise/errors on platforms whose
|
||||
* firmware carries around a bunch of unused Package objects.
|
||||
* To disable these errors, define ACPI_IGNORE_PACKAGE_RESOLUTION_ERRORS
|
||||
* in the OS-specific header.
|
||||
*
|
||||
* All errors are always reported for ACPICA applications such as
|
||||
* acpi_exec.
|
||||
*/
|
||||
if (status == AE_NOT_FOUND) {
|
||||
if ((status == AE_NOT_FOUND)
|
||||
&& acpi_gbl_ignore_package_resolution_errors) {
|
||||
/*
|
||||
* Optionally be silent about the NOT_FOUND case for the referenced
|
||||
* name. Although this is potentially a serious problem,
|
||||
* it can generate a lot of noise/errors on platforms whose
|
||||
* firmware carries around a bunch of unused Package objects.
|
||||
* To disable these errors, set this global to TRUE:
|
||||
* acpi_gbl_ignore_package_resolution_errors
|
||||
*
|
||||
* If the AML actually tries to use such a package, the unresolved
|
||||
* element(s) will be replaced with NULL elements.
|
||||
*/
|
||||
|
||||
/* Reference name not found, set the element to NULL */
|
||||
/* Referenced name not found, set the element to NULL */
|
||||
|
||||
acpi_ut_remove_reference(*element_ptr);
|
||||
*element_ptr = NULL;
|
||||
return_VOID;
|
||||
}
|
||||
#endif
|
||||
|
||||
status2 = acpi_ns_externalize_name(ACPI_UINT32_MAX,
|
||||
(char *)element->reference.
|
||||
aml, NULL, &external_path);
|
||||
|
|
|
@ -270,6 +270,16 @@ ACPI_INIT_GLOBAL(u8, acpi_gbl_reduced_hardware, FALSE);
|
|||
*/
|
||||
ACPI_INIT_GLOBAL(u32, acpi_gbl_max_loop_iterations, ACPI_MAX_LOOP_TIMEOUT);
|
||||
|
||||
/*
|
||||
* Optionally ignore AE_NOT_FOUND errors from named reference package elements
|
||||
* during DSDT/SSDT table loading. This reduces error "noise" in platforms
|
||||
* whose firmware is carrying around a bunch of unused package objects that
|
||||
* refer to non-existent named objects. However, If the AML actually tries to
|
||||
* use such a package, the unresolved element(s) will be replaced with NULL
|
||||
* elements.
|
||||
*/
|
||||
ACPI_INIT_GLOBAL(u8, acpi_gbl_ignore_package_resolution_errors, FALSE);
|
||||
|
||||
/*
|
||||
* This mechanism is used to trace a specified AML method. The method is
|
||||
* traced each time it is executed.
|
||||
|
|
Loading…
Reference in New Issue