diff options
author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2015-09-01 03:37:30 +0200 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2015-09-01 03:37:30 +0200 |
commit | c91c5b276bc1e60c0d65ff69e29b6edc5948430d (patch) | |
tree | 5c6d647777cba479c34f5eda0eb5150fed747be3 /drivers/acpi/acpica/exresolv.c | |
parent | 64291f7db5bd8150a74ad2036f1037e6a0428df2 (diff) | |
parent | b7a4f7ff7f83bd42ee765f666e6c0a28545bc6d6 (diff) |
Merge branch 'acpica'
* acpica: (42 commits)
ACPICA: Update version to 20150818
ACPICA: Debugger: Cleanup debugging outputs to dump name path without trailing underscores
ACPICA: Disassembler: Cleanup acpi_gbl_db_opt_verbose acpiexec usage
ACPICA: Disassembler: Cleanup acpi_gbl_db_opt_disasm
ACPICA: Debugger: Split debugger initialization/termination APIs
ACPICA: Header support to improve compatibility with MSVC
ACPICA: Make the max-number-of-loops runtime configurable
ACPICA: Debugger: Add option to display namespace summary/counts
ACPICA: Add additional debug info/statements
ACPICA: Table handling: Cleanup and update debug output for tools
ACPICA: acpiexec/acpinames: Support very large number of ACPI tables
ACPICA: acpinames: Add new options and wildcard support
ACPICA: Headers: Fix some comments, no functional change
ACPICA: Tables: Cleanup to reduce FACS globals
ACPICA: Tables: Fix global table list issues by removing fixed table indexes
ACPICA: Update info messages during ACPICA init
ACPICA: Disassembler: Update for new listing mode
ACPICA: Update parameter validation for data_table_region and load_table
ACPICA: Disassembler: Remove duplicate code in _PLD processing.
ACPICA: Correctly cleanup after a ACPI table load failure
...
Diffstat (limited to 'drivers/acpi/acpica/exresolv.c')
-rw-r--r-- | drivers/acpi/acpica/exresolv.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/drivers/acpi/acpica/exresolv.c b/drivers/acpi/acpica/exresolv.c index b6b7f3af29e4..7b109128b035 100644 --- a/drivers/acpi/acpica/exresolv.c +++ b/drivers/acpi/acpica/exresolv.c @@ -337,8 +337,9 @@ acpi_ex_resolve_multiple(struct acpi_walk_state *walk_state, acpi_object_type * return_type, union acpi_operand_object **return_desc) { - union acpi_operand_object *obj_desc = (void *)operand; - struct acpi_namespace_node *node; + union acpi_operand_object *obj_desc = ACPI_CAST_PTR(void, operand); + struct acpi_namespace_node *node = + ACPI_CAST_PTR(struct acpi_namespace_node, operand); acpi_object_type type; acpi_status status; @@ -355,9 +356,7 @@ acpi_ex_resolve_multiple(struct acpi_walk_state *walk_state, case ACPI_DESC_TYPE_NAMED: type = ((struct acpi_namespace_node *)obj_desc)->type; - obj_desc = - acpi_ns_get_attached_object((struct acpi_namespace_node *) - obj_desc); + obj_desc = acpi_ns_get_attached_object(node); /* If we had an Alias node, use the attached object for type info */ @@ -368,6 +367,13 @@ acpi_ex_resolve_multiple(struct acpi_walk_state *walk_state, acpi_namespace_node *) obj_desc); } + + if (!obj_desc) { + ACPI_ERROR((AE_INFO, + "[%4.4s] Node is unresolved or uninitialized", + acpi_ut_get_node_name(node))); + return_ACPI_STATUS(AE_AML_UNINITIALIZED_NODE); + } break; default: |