Commit 0766efdf authored by Erik Kaneda's avatar Erik Kaneda Committed by Rafael J. Wysocki

ACPICA: Add function trace macros to improve debugging

ACPICA commit 87b8dba05b4cf8c111948327023c710e2b6b5a05

The namespace repair mechanism does not have function tracing macros.
Add several trace macros to improve debuggability.

Link: https://github.com/acpica/acpica/commit/87b8dba0Signed-off-by: default avatarErik Kaneda <erik.kaneda@intel.com>
Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 0306f035
...@@ -71,11 +71,13 @@ acpi_ns_check_return_value(struct acpi_namespace_node *node, ...@@ -71,11 +71,13 @@ acpi_ns_check_return_value(struct acpi_namespace_node *node,
acpi_status status; acpi_status status;
const union acpi_predefined_info *predefined; const union acpi_predefined_info *predefined;
ACPI_FUNCTION_TRACE(ns_check_return_value);
/* If not a predefined name, we cannot validate the return object */ /* If not a predefined name, we cannot validate the return object */
predefined = info->predefined; predefined = info->predefined;
if (!predefined) { if (!predefined) {
return (AE_OK); return_ACPI_STATUS(AE_OK);
} }
/* /*
...@@ -83,7 +85,7 @@ acpi_ns_check_return_value(struct acpi_namespace_node *node, ...@@ -83,7 +85,7 @@ acpi_ns_check_return_value(struct acpi_namespace_node *node,
* validate the return object * validate the return object
*/ */
if ((return_status != AE_OK) && (return_status != AE_CTRL_RETURN_VALUE)) { if ((return_status != AE_OK) && (return_status != AE_CTRL_RETURN_VALUE)) {
return (AE_OK); return_ACPI_STATUS(AE_OK);
} }
/* /*
...@@ -102,7 +104,7 @@ acpi_ns_check_return_value(struct acpi_namespace_node *node, ...@@ -102,7 +104,7 @@ acpi_ns_check_return_value(struct acpi_namespace_node *node,
if (acpi_gbl_disable_auto_repair || if (acpi_gbl_disable_auto_repair ||
(!predefined->info.expected_btypes) || (!predefined->info.expected_btypes) ||
(predefined->info.expected_btypes == ACPI_RTYPE_ALL)) { (predefined->info.expected_btypes == ACPI_RTYPE_ALL)) {
return (AE_OK); return_ACPI_STATUS(AE_OK);
} }
/* /*
...@@ -163,7 +165,7 @@ acpi_ns_check_return_value(struct acpi_namespace_node *node, ...@@ -163,7 +165,7 @@ acpi_ns_check_return_value(struct acpi_namespace_node *node,
node->flags |= ANOBJ_EVALUATED; node->flags |= ANOBJ_EVALUATED;
} }
return (status); return_ACPI_STATUS(status);
} }
/******************************************************************************* /*******************************************************************************
......
...@@ -59,7 +59,7 @@ acpi_ns_check_package(struct acpi_evaluate_info *info, ...@@ -59,7 +59,7 @@ acpi_ns_check_package(struct acpi_evaluate_info *info,
u32 count; u32 count;
u32 i; u32 i;
ACPI_FUNCTION_NAME(ns_check_package); ACPI_FUNCTION_TRACE(ns_check_package);
/* The package info for this name is in the next table entry */ /* The package info for this name is in the next table entry */
...@@ -88,14 +88,14 @@ acpi_ns_check_package(struct acpi_evaluate_info *info, ...@@ -88,14 +88,14 @@ acpi_ns_check_package(struct acpi_evaluate_info *info,
*/ */
if (!count) { if (!count) {
if (package->ret_info.type == ACPI_PTYPE1_VAR) { if (package->ret_info.type == ACPI_PTYPE1_VAR) {
return (AE_OK); return_ACPI_STATUS(AE_OK);
} }
ACPI_WARN_PREDEFINED((AE_INFO, info->full_pathname, ACPI_WARN_PREDEFINED((AE_INFO, info->full_pathname,
info->node_flags, info->node_flags,
"Return Package has no elements (empty)")); "Return Package has no elements (empty)"));
return (AE_AML_OPERAND_VALUE); return_ACPI_STATUS(AE_AML_OPERAND_VALUE);
} }
/* /*
...@@ -152,7 +152,7 @@ acpi_ns_check_package(struct acpi_evaluate_info *info, ...@@ -152,7 +152,7 @@ acpi_ns_check_package(struct acpi_evaluate_info *info,
package->ret_info. package->ret_info.
object_type1, i); object_type1, i);
if (ACPI_FAILURE(status)) { if (ACPI_FAILURE(status)) {
return (status); return_ACPI_STATUS(status);
} }
elements++; elements++;
...@@ -186,7 +186,7 @@ acpi_ns_check_package(struct acpi_evaluate_info *info, ...@@ -186,7 +186,7 @@ acpi_ns_check_package(struct acpi_evaluate_info *info,
object_type[i], object_type[i],
i); i);
if (ACPI_FAILURE(status)) { if (ACPI_FAILURE(status)) {
return (status); return_ACPI_STATUS(status);
} }
} else { } else {
/* These are the optional package elements */ /* These are the optional package elements */
...@@ -198,7 +198,7 @@ acpi_ns_check_package(struct acpi_evaluate_info *info, ...@@ -198,7 +198,7 @@ acpi_ns_check_package(struct acpi_evaluate_info *info,
tail_object_type, tail_object_type,
i); i);
if (ACPI_FAILURE(status)) { if (ACPI_FAILURE(status)) {
return (status); return_ACPI_STATUS(status);
} }
} }
...@@ -214,7 +214,7 @@ acpi_ns_check_package(struct acpi_evaluate_info *info, ...@@ -214,7 +214,7 @@ acpi_ns_check_package(struct acpi_evaluate_info *info,
acpi_ns_check_object_type(info, elements, acpi_ns_check_object_type(info, elements,
ACPI_RTYPE_INTEGER, 0); ACPI_RTYPE_INTEGER, 0);
if (ACPI_FAILURE(status)) { if (ACPI_FAILURE(status)) {
return (status); return_ACPI_STATUS(status);
} }
elements++; elements++;
...@@ -234,7 +234,7 @@ acpi_ns_check_package(struct acpi_evaluate_info *info, ...@@ -234,7 +234,7 @@ acpi_ns_check_package(struct acpi_evaluate_info *info,
acpi_ns_check_object_type(info, elements, acpi_ns_check_object_type(info, elements,
ACPI_RTYPE_INTEGER, 0); ACPI_RTYPE_INTEGER, 0);
if (ACPI_FAILURE(status)) { if (ACPI_FAILURE(status)) {
return (status); return_ACPI_STATUS(status);
} }
/* /*
...@@ -279,7 +279,7 @@ acpi_ns_check_package(struct acpi_evaluate_info *info, ...@@ -279,7 +279,7 @@ acpi_ns_check_package(struct acpi_evaluate_info *info,
acpi_ns_wrap_with_package(info, return_object, acpi_ns_wrap_with_package(info, return_object,
return_object_ptr); return_object_ptr);
if (ACPI_FAILURE(status)) { if (ACPI_FAILURE(status)) {
return (status); return_ACPI_STATUS(status);
} }
/* Update locals to point to the new package (of 1 element) */ /* Update locals to point to the new package (of 1 element) */
...@@ -316,7 +316,7 @@ acpi_ns_check_package(struct acpi_evaluate_info *info, ...@@ -316,7 +316,7 @@ acpi_ns_check_package(struct acpi_evaluate_info *info,
package->ret_info. package->ret_info.
object_type1, 0); object_type1, 0);
if (ACPI_FAILURE(status)) { if (ACPI_FAILURE(status)) {
return (status); return_ACPI_STATUS(status);
} }
/* Validate length of the UUID buffer */ /* Validate length of the UUID buffer */
...@@ -326,14 +326,14 @@ acpi_ns_check_package(struct acpi_evaluate_info *info, ...@@ -326,14 +326,14 @@ acpi_ns_check_package(struct acpi_evaluate_info *info,
info->full_pathname, info->full_pathname,
info->node_flags, info->node_flags,
"Invalid length for UUID Buffer")); "Invalid length for UUID Buffer"));
return (AE_AML_OPERAND_VALUE); return_ACPI_STATUS(AE_AML_OPERAND_VALUE);
} }
status = acpi_ns_check_object_type(info, elements + 1, status = acpi_ns_check_object_type(info, elements + 1,
package->ret_info. package->ret_info.
object_type2, 0); object_type2, 0);
if (ACPI_FAILURE(status)) { if (ACPI_FAILURE(status)) {
return (status); return_ACPI_STATUS(status);
} }
elements += 2; elements += 2;
...@@ -350,10 +350,10 @@ acpi_ns_check_package(struct acpi_evaluate_info *info, ...@@ -350,10 +350,10 @@ acpi_ns_check_package(struct acpi_evaluate_info *info,
"Invalid internal return type in table entry: %X", "Invalid internal return type in table entry: %X",
package->ret_info.type)); package->ret_info.type));
return (AE_AML_INTERNAL); return_ACPI_STATUS(AE_AML_INTERNAL);
} }
return (status); return_ACPI_STATUS(status);
package_too_small: package_too_small:
...@@ -363,7 +363,7 @@ acpi_ns_check_package(struct acpi_evaluate_info *info, ...@@ -363,7 +363,7 @@ acpi_ns_check_package(struct acpi_evaluate_info *info,
"Return Package is too small - found %u elements, expected %u", "Return Package is too small - found %u elements, expected %u",
count, expected_count)); count, expected_count));
return (AE_AML_OPERAND_VALUE); return_ACPI_STATUS(AE_AML_OPERAND_VALUE);
} }
/******************************************************************************* /*******************************************************************************
...@@ -708,6 +708,8 @@ acpi_ns_check_package_elements(struct acpi_evaluate_info *info, ...@@ -708,6 +708,8 @@ acpi_ns_check_package_elements(struct acpi_evaluate_info *info,
acpi_status status; acpi_status status;
u32 i; u32 i;
ACPI_FUNCTION_TRACE(ns_check_package_elements);
/* /*
* Up to two groups of package elements are supported by the data * Up to two groups of package elements are supported by the data
* structure. All elements in each group must be of the same type. * structure. All elements in each group must be of the same type.
...@@ -717,7 +719,7 @@ acpi_ns_check_package_elements(struct acpi_evaluate_info *info, ...@@ -717,7 +719,7 @@ acpi_ns_check_package_elements(struct acpi_evaluate_info *info,
status = acpi_ns_check_object_type(info, this_element, status = acpi_ns_check_object_type(info, this_element,
type1, i + start_index); type1, i + start_index);
if (ACPI_FAILURE(status)) { if (ACPI_FAILURE(status)) {
return (status); return_ACPI_STATUS(status);
} }
this_element++; this_element++;
...@@ -728,11 +730,11 @@ acpi_ns_check_package_elements(struct acpi_evaluate_info *info, ...@@ -728,11 +730,11 @@ acpi_ns_check_package_elements(struct acpi_evaluate_info *info,
type2, type2,
(i + count1 + start_index)); (i + count1 + start_index));
if (ACPI_FAILURE(status)) { if (ACPI_FAILURE(status)) {
return (status); return_ACPI_STATUS(status);
} }
this_element++; this_element++;
} }
return (AE_OK); return_ACPI_STATUS(AE_OK);
} }
...@@ -155,15 +155,17 @@ acpi_ns_complex_repairs(struct acpi_evaluate_info *info, ...@@ -155,15 +155,17 @@ acpi_ns_complex_repairs(struct acpi_evaluate_info *info,
const struct acpi_repair_info *predefined; const struct acpi_repair_info *predefined;
acpi_status status; acpi_status status;
ACPI_FUNCTION_TRACE(ns_complex_repairs);
/* Check if this name is in the list of repairable names */ /* Check if this name is in the list of repairable names */
predefined = acpi_ns_match_complex_repair(node); predefined = acpi_ns_match_complex_repair(node);
if (!predefined) { if (!predefined) {
return (validate_status); return_ACPI_STATUS(validate_status);
} }
status = predefined->repair_function(info, return_object_ptr); status = predefined->repair_function(info, return_object_ptr);
return (status); return_ACPI_STATUS(status);
} }
/****************************************************************************** /******************************************************************************
...@@ -344,17 +346,19 @@ acpi_ns_repair_CID(struct acpi_evaluate_info *info, ...@@ -344,17 +346,19 @@ acpi_ns_repair_CID(struct acpi_evaluate_info *info,
u16 original_ref_count; u16 original_ref_count;
u32 i; u32 i;
ACPI_FUNCTION_TRACE(ns_repair_CID);
/* Check for _CID as a simple string */ /* Check for _CID as a simple string */
if (return_object->common.type == ACPI_TYPE_STRING) { if (return_object->common.type == ACPI_TYPE_STRING) {
status = acpi_ns_repair_HID(info, return_object_ptr); status = acpi_ns_repair_HID(info, return_object_ptr);
return (status); return_ACPI_STATUS(status);
} }
/* Exit if not a Package */ /* Exit if not a Package */
if (return_object->common.type != ACPI_TYPE_PACKAGE) { if (return_object->common.type != ACPI_TYPE_PACKAGE) {
return (AE_OK); return_ACPI_STATUS(AE_OK);
} }
/* Examine each element of the _CID package */ /* Examine each element of the _CID package */
...@@ -366,7 +370,7 @@ acpi_ns_repair_CID(struct acpi_evaluate_info *info, ...@@ -366,7 +370,7 @@ acpi_ns_repair_CID(struct acpi_evaluate_info *info,
status = acpi_ns_repair_HID(info, element_ptr); status = acpi_ns_repair_HID(info, element_ptr);
if (ACPI_FAILURE(status)) { if (ACPI_FAILURE(status)) {
return (status); return_ACPI_STATUS(status);
} }
if (original_element != *element_ptr) { if (original_element != *element_ptr) {
...@@ -380,7 +384,7 @@ acpi_ns_repair_CID(struct acpi_evaluate_info *info, ...@@ -380,7 +384,7 @@ acpi_ns_repair_CID(struct acpi_evaluate_info *info,
element_ptr++; element_ptr++;
} }
return (AE_OK); return_ACPI_STATUS(AE_OK);
} }
/****************************************************************************** /******************************************************************************
...@@ -500,7 +504,7 @@ acpi_ns_repair_HID(struct acpi_evaluate_info *info, ...@@ -500,7 +504,7 @@ acpi_ns_repair_HID(struct acpi_evaluate_info *info,
/* We only care about string _HID objects (not integers) */ /* We only care about string _HID objects (not integers) */
if (return_object->common.type != ACPI_TYPE_STRING) { if (return_object->common.type != ACPI_TYPE_STRING) {
return (AE_OK); return_ACPI_STATUS(AE_OK);
} }
if (return_object->string.length == 0) { if (return_object->string.length == 0) {
...@@ -511,14 +515,14 @@ acpi_ns_repair_HID(struct acpi_evaluate_info *info, ...@@ -511,14 +515,14 @@ acpi_ns_repair_HID(struct acpi_evaluate_info *info,
/* Return AE_OK anyway, let driver handle it */ /* Return AE_OK anyway, let driver handle it */
info->return_flags |= ACPI_OBJECT_REPAIRED; info->return_flags |= ACPI_OBJECT_REPAIRED;
return (AE_OK); return_ACPI_STATUS(AE_OK);
} }
/* It is simplest to always create a new string object */ /* It is simplest to always create a new string object */
new_string = acpi_ut_create_string_object(return_object->string.length); new_string = acpi_ut_create_string_object(return_object->string.length);
if (!new_string) { if (!new_string) {
return (AE_NO_MEMORY); return_ACPI_STATUS(AE_NO_MEMORY);
} }
/* /*
...@@ -551,7 +555,7 @@ acpi_ns_repair_HID(struct acpi_evaluate_info *info, ...@@ -551,7 +555,7 @@ acpi_ns_repair_HID(struct acpi_evaluate_info *info,
acpi_ut_remove_reference(return_object); acpi_ut_remove_reference(return_object);
*return_object_ptr = new_string; *return_object_ptr = new_string;
return (AE_OK); return_ACPI_STATUS(AE_OK);
} }
/****************************************************************************** /******************************************************************************
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment