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/87b8dba0 Signed-off-by: Erik Kaneda <erik.kaneda@intel.com> Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
0306f03573
commit
0766efdf9a
@ -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,
|
|||||||
* 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,
|
|||||||
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 @@ exit:
|
|||||||
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,
|
|||||||
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,
|
|||||||
*/
|
*/
|
||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
"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 @@ package_too_small:
|
|||||||
"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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
|
|
||||||
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,
|
|||||||
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,
|
|||||||
/* 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,
|
|||||||
/* 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,
|
|||||||
|
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
|
Loading…
Reference in New Issue
Block a user