Skip to content

Commit 34f206f

Browse files
acpibobrafaeljw
authored andcommitted
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 <[email protected]> Signed-off-by: Erik Schmauss <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
1 parent e7c2c3c commit 34f206f

File tree

2 files changed

+26
-16
lines changed

2 files changed

+26
-16
lines changed

drivers/acpi/acpica/dspkginit.c

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -413,32 +413,32 @@ acpi_ds_resolve_package_element(union acpi_operand_object **element_ptr)
413413

414414
scope_info.scope.node = element->reference.node; /* Prefix node */
415415

416-
status = acpi_ns_lookup(&scope_info, (char *)element->reference.aml, /* Pointer to AML path */
416+
status = acpi_ns_lookup(&scope_info, (char *)element->reference.aml,
417417
ACPI_TYPE_ANY, ACPI_IMODE_EXECUTE,
418418
ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE,
419419
NULL, &resolved_node);
420420
if (ACPI_FAILURE(status)) {
421-
#if defined ACPI_IGNORE_PACKAGE_RESOLUTION_ERRORS && !defined ACPI_APPLICATION
422-
/*
423-
* For the kernel-resident ACPICA, optionally be silent about the
424-
* NOT_FOUND case. Although this is potentially a serious problem,
425-
* it can generate a lot of noise/errors on platforms whose
426-
* firmware carries around a bunch of unused Package objects.
427-
* To disable these errors, define ACPI_IGNORE_PACKAGE_RESOLUTION_ERRORS
428-
* in the OS-specific header.
429-
*
430-
* All errors are always reported for ACPICA applications such as
431-
* acpi_exec.
432-
*/
433-
if (status == AE_NOT_FOUND) {
421+
if ((status == AE_NOT_FOUND)
422+
&& acpi_gbl_ignore_package_resolution_errors) {
423+
/*
424+
* Optionally be silent about the NOT_FOUND case for the referenced
425+
* name. Although this is potentially a serious problem,
426+
* it can generate a lot of noise/errors on platforms whose
427+
* firmware carries around a bunch of unused Package objects.
428+
* To disable these errors, set this global to TRUE:
429+
* acpi_gbl_ignore_package_resolution_errors
430+
*
431+
* If the AML actually tries to use such a package, the unresolved
432+
* element(s) will be replaced with NULL elements.
433+
*/
434434

435-
/* Reference name not found, set the element to NULL */
435+
/* Referenced name not found, set the element to NULL */
436436

437437
acpi_ut_remove_reference(*element_ptr);
438438
*element_ptr = NULL;
439439
return_VOID;
440440
}
441-
#endif
441+
442442
status2 = acpi_ns_externalize_name(ACPI_UINT32_MAX,
443443
(char *)element->reference.
444444
aml, NULL, &external_path);

include/acpi/acpixf.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,16 @@ ACPI_INIT_GLOBAL(u8, acpi_gbl_reduced_hardware, FALSE);
270270
*/
271271
ACPI_INIT_GLOBAL(u32, acpi_gbl_max_loop_iterations, ACPI_MAX_LOOP_TIMEOUT);
272272

273+
/*
274+
* Optionally ignore AE_NOT_FOUND errors from named reference package elements
275+
* during DSDT/SSDT table loading. This reduces error "noise" in platforms
276+
* whose firmware is carrying around a bunch of unused package objects that
277+
* refer to non-existent named objects. However, If the AML actually tries to
278+
* use such a package, the unresolved element(s) will be replaced with NULL
279+
* elements.
280+
*/
281+
ACPI_INIT_GLOBAL(u8, acpi_gbl_ignore_package_resolution_errors, FALSE);
282+
273283
/*
274284
* This mechanism is used to trace a specified AML method. The method is
275285
* traced each time it is executed.

0 commit comments

Comments
 (0)