Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Erik Kaneda and committed by
Rafael J. Wysocki
0766efdf 0306f035

+40 -32
+6 -4
drivers/acpi/acpica/nspredef.c
··· 71 71 acpi_status status; 72 72 const union acpi_predefined_info *predefined; 73 73 74 + ACPI_FUNCTION_TRACE(ns_check_return_value); 75 + 74 76 /* If not a predefined name, we cannot validate the return object */ 75 77 76 78 predefined = info->predefined; 77 79 if (!predefined) { 78 - return (AE_OK); 80 + return_ACPI_STATUS(AE_OK); 79 81 } 80 82 81 83 /* ··· 85 83 * validate the return object 86 84 */ 87 85 if ((return_status != AE_OK) && (return_status != AE_CTRL_RETURN_VALUE)) { 88 - return (AE_OK); 86 + return_ACPI_STATUS(AE_OK); 89 87 } 90 88 91 89 /* ··· 104 102 if (acpi_gbl_disable_auto_repair || 105 103 (!predefined->info.expected_btypes) || 106 104 (predefined->info.expected_btypes == ACPI_RTYPE_ALL)) { 107 - return (AE_OK); 105 + return_ACPI_STATUS(AE_OK); 108 106 } 109 107 110 108 /* ··· 165 163 node->flags |= ANOBJ_EVALUATED; 166 164 } 167 165 168 - return (status); 166 + return_ACPI_STATUS(status); 169 167 } 170 168 171 169 /*******************************************************************************
+20 -18
drivers/acpi/acpica/nsprepkg.c
··· 59 59 u32 count; 60 60 u32 i; 61 61 62 - ACPI_FUNCTION_NAME(ns_check_package); 62 + ACPI_FUNCTION_TRACE(ns_check_package); 63 63 64 64 /* The package info for this name is in the next table entry */ 65 65 ··· 88 88 */ 89 89 if (!count) { 90 90 if (package->ret_info.type == ACPI_PTYPE1_VAR) { 91 - return (AE_OK); 91 + return_ACPI_STATUS(AE_OK); 92 92 } 93 93 94 94 ACPI_WARN_PREDEFINED((AE_INFO, info->full_pathname, 95 95 info->node_flags, 96 96 "Return Package has no elements (empty)")); 97 97 98 - return (AE_AML_OPERAND_VALUE); 98 + return_ACPI_STATUS(AE_AML_OPERAND_VALUE); 99 99 } 100 100 101 101 /* ··· 152 152 package->ret_info. 153 153 object_type1, i); 154 154 if (ACPI_FAILURE(status)) { 155 - return (status); 155 + return_ACPI_STATUS(status); 156 156 } 157 157 158 158 elements++; ··· 186 186 object_type[i], 187 187 i); 188 188 if (ACPI_FAILURE(status)) { 189 - return (status); 189 + return_ACPI_STATUS(status); 190 190 } 191 191 } else { 192 192 /* These are the optional package elements */ ··· 198 198 tail_object_type, 199 199 i); 200 200 if (ACPI_FAILURE(status)) { 201 - return (status); 201 + return_ACPI_STATUS(status); 202 202 } 203 203 } 204 204 ··· 214 214 acpi_ns_check_object_type(info, elements, 215 215 ACPI_RTYPE_INTEGER, 0); 216 216 if (ACPI_FAILURE(status)) { 217 - return (status); 217 + return_ACPI_STATUS(status); 218 218 } 219 219 220 220 elements++; ··· 234 234 acpi_ns_check_object_type(info, elements, 235 235 ACPI_RTYPE_INTEGER, 0); 236 236 if (ACPI_FAILURE(status)) { 237 - return (status); 237 + return_ACPI_STATUS(status); 238 238 } 239 239 240 240 /* ··· 279 279 acpi_ns_wrap_with_package(info, return_object, 280 280 return_object_ptr); 281 281 if (ACPI_FAILURE(status)) { 282 - return (status); 282 + return_ACPI_STATUS(status); 283 283 } 284 284 285 285 /* Update locals to point to the new package (of 1 element) */ ··· 316 316 package->ret_info. 317 317 object_type1, 0); 318 318 if (ACPI_FAILURE(status)) { 319 - return (status); 319 + return_ACPI_STATUS(status); 320 320 } 321 321 322 322 /* Validate length of the UUID buffer */ ··· 326 326 info->full_pathname, 327 327 info->node_flags, 328 328 "Invalid length for UUID Buffer")); 329 - return (AE_AML_OPERAND_VALUE); 329 + return_ACPI_STATUS(AE_AML_OPERAND_VALUE); 330 330 } 331 331 332 332 status = acpi_ns_check_object_type(info, elements + 1, 333 333 package->ret_info. 334 334 object_type2, 0); 335 335 if (ACPI_FAILURE(status)) { 336 - return (status); 336 + return_ACPI_STATUS(status); 337 337 } 338 338 339 339 elements += 2; ··· 350 350 "Invalid internal return type in table entry: %X", 351 351 package->ret_info.type)); 352 352 353 - return (AE_AML_INTERNAL); 353 + return_ACPI_STATUS(AE_AML_INTERNAL); 354 354 } 355 355 356 - return (status); 356 + return_ACPI_STATUS(status); 357 357 358 358 package_too_small: 359 359 ··· 363 363 "Return Package is too small - found %u elements, expected %u", 364 364 count, expected_count)); 365 365 366 - return (AE_AML_OPERAND_VALUE); 366 + return_ACPI_STATUS(AE_AML_OPERAND_VALUE); 367 367 } 368 368 369 369 /******************************************************************************* ··· 708 708 acpi_status status; 709 709 u32 i; 710 710 711 + ACPI_FUNCTION_TRACE(ns_check_package_elements); 712 + 711 713 /* 712 714 * Up to two groups of package elements are supported by the data 713 715 * structure. All elements in each group must be of the same type. ··· 719 717 status = acpi_ns_check_object_type(info, this_element, 720 718 type1, i + start_index); 721 719 if (ACPI_FAILURE(status)) { 722 - return (status); 720 + return_ACPI_STATUS(status); 723 721 } 724 722 725 723 this_element++; ··· 730 728 type2, 731 729 (i + count1 + start_index)); 732 730 if (ACPI_FAILURE(status)) { 733 - return (status); 731 + return_ACPI_STATUS(status); 734 732 } 735 733 736 734 this_element++; 737 735 } 738 736 739 - return (AE_OK); 737 + return_ACPI_STATUS(AE_OK); 740 738 }
+14 -10
drivers/acpi/acpica/nsrepair2.c
··· 155 155 const struct acpi_repair_info *predefined; 156 156 acpi_status status; 157 157 158 + ACPI_FUNCTION_TRACE(ns_complex_repairs); 159 + 158 160 /* Check if this name is in the list of repairable names */ 159 161 160 162 predefined = acpi_ns_match_complex_repair(node); 161 163 if (!predefined) { 162 - return (validate_status); 164 + return_ACPI_STATUS(validate_status); 163 165 } 164 166 165 167 status = predefined->repair_function(info, return_object_ptr); 166 - return (status); 168 + return_ACPI_STATUS(status); 167 169 } 168 170 169 171 /****************************************************************************** ··· 346 344 u16 original_ref_count; 347 345 u32 i; 348 346 347 + ACPI_FUNCTION_TRACE(ns_repair_CID); 348 + 349 349 /* Check for _CID as a simple string */ 350 350 351 351 if (return_object->common.type == ACPI_TYPE_STRING) { 352 352 status = acpi_ns_repair_HID(info, return_object_ptr); 353 - return (status); 353 + return_ACPI_STATUS(status); 354 354 } 355 355 356 356 /* Exit if not a Package */ 357 357 358 358 if (return_object->common.type != ACPI_TYPE_PACKAGE) { 359 - return (AE_OK); 359 + return_ACPI_STATUS(AE_OK); 360 360 } 361 361 362 362 /* Examine each element of the _CID package */ ··· 370 366 371 367 status = acpi_ns_repair_HID(info, element_ptr); 372 368 if (ACPI_FAILURE(status)) { 373 - return (status); 369 + return_ACPI_STATUS(status); 374 370 } 375 371 376 372 if (original_element != *element_ptr) { ··· 384 380 element_ptr++; 385 381 } 386 382 387 - return (AE_OK); 383 + return_ACPI_STATUS(AE_OK); 388 384 } 389 385 390 386 /****************************************************************************** ··· 504 500 /* We only care about string _HID objects (not integers) */ 505 501 506 502 if (return_object->common.type != ACPI_TYPE_STRING) { 507 - return (AE_OK); 503 + return_ACPI_STATUS(AE_OK); 508 504 } 509 505 510 506 if (return_object->string.length == 0) { ··· 515 511 /* Return AE_OK anyway, let driver handle it */ 516 512 517 513 info->return_flags |= ACPI_OBJECT_REPAIRED; 518 - return (AE_OK); 514 + return_ACPI_STATUS(AE_OK); 519 515 } 520 516 521 517 /* It is simplest to always create a new string object */ 522 518 523 519 new_string = acpi_ut_create_string_object(return_object->string.length); 524 520 if (!new_string) { 525 - return (AE_NO_MEMORY); 521 + return_ACPI_STATUS(AE_NO_MEMORY); 526 522 } 527 523 528 524 /* ··· 555 551 556 552 acpi_ut_remove_reference(return_object); 557 553 *return_object_ptr = new_string; 558 - return (AE_OK); 554 + return_ACPI_STATUS(AE_OK); 559 555 } 560 556 561 557 /******************************************************************************