aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/executer/exresolv.c
diff options
context:
space:
mode:
authorBob Moore <robert.moore@intel.com>2006-01-27 16:43:00 -0500
committerLen Brown <len.brown@intel.com>2006-01-31 03:25:09 -0500
commitb8e4d89357fc434618a59c1047cac72641191805 (patch)
treeac97fcc6fdc277c682365900663872c96f2420bd /drivers/acpi/executer/exresolv.c
parent292dd876ee765c478b27c93cc51e93a558ed58bf (diff)
[ACPI] ACPICA 20060127
Implemented support in the Resource Manager to allow unresolved namestring references within resource package objects for the _PRT method. This support is in addition to the previously implemented unresolved reference support within the AML parser. If the interpreter slack mode is enabled (true on Linux unless acpi=strict), these unresolved references will be passed through to the caller as a NULL package entry. http://bugzilla.kernel.org/show_bug.cgi?id=5741 Implemented and deployed new macros and functions for error and warning messages across the subsystem. These macros are simpler and generate less code than their predecessors. The new macros ACPI_ERROR, ACPI_EXCEPTION, ACPI_WARNING, and ACPI_INFO replace the ACPI_REPORT_* macros. Implemented the acpi_cpu_flags type to simplify host OS integration of the Acquire/Release Lock OSL interfaces. Suggested by Steven Rostedt and Andrew Morton. Fixed a problem where Alias ASL operators are sometimes not correctly resolved. causing AE_AML_INTERNAL http://bugzilla.kernel.org/show_bug.cgi?id=5189 http://bugzilla.kernel.org/show_bug.cgi?id=5674 Fixed several problems with the implementation of the ConcatenateResTemplate ASL operator. As per the ACPI specification, zero length buffers are now treated as a single EndTag. One-length buffers always cause a fatal exception. Non-zero length buffers that do not end with a full 2-byte EndTag cause a fatal exception. Fixed a possible structure overwrite in the AcpiGetObjectInfo external interface. (With assistance from Thomas Renninger) Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/executer/exresolv.c')
-rw-r--r--drivers/acpi/executer/exresolv.c37
1 files changed, 22 insertions, 15 deletions
diff --git a/drivers/acpi/executer/exresolv.c b/drivers/acpi/executer/exresolv.c
index ae2d2da00844..1deed492fe88 100644
--- a/drivers/acpi/executer/exresolv.c
+++ b/drivers/acpi/executer/exresolv.c
@@ -81,7 +81,7 @@ acpi_ex_resolve_to_value(union acpi_operand_object **stack_ptr,
81 ACPI_FUNCTION_TRACE_PTR("ex_resolve_to_value", stack_ptr); 81 ACPI_FUNCTION_TRACE_PTR("ex_resolve_to_value", stack_ptr);
82 82
83 if (!stack_ptr || !*stack_ptr) { 83 if (!stack_ptr || !*stack_ptr) {
84 ACPI_REPORT_ERROR(("Internal - null pointer\n")); 84 ACPI_ERROR((AE_INFO, "Internal - null pointer"));
85 return_ACPI_STATUS(AE_AML_NO_OPERAND); 85 return_ACPI_STATUS(AE_AML_NO_OPERAND);
86 } 86 }
87 87
@@ -97,7 +97,7 @@ acpi_ex_resolve_to_value(union acpi_operand_object **stack_ptr,
97 } 97 }
98 98
99 if (!*stack_ptr) { 99 if (!*stack_ptr) {
100 ACPI_REPORT_ERROR(("Internal - null pointer\n")); 100 ACPI_ERROR((AE_INFO, "Internal - null pointer"));
101 return_ACPI_STATUS(AE_AML_NO_OPERAND); 101 return_ACPI_STATUS(AE_AML_NO_OPERAND);
102 } 102 }
103 } 103 }
@@ -227,7 +227,9 @@ acpi_ex_resolve_object_to_value(union acpi_operand_object **stack_ptr,
227 * A NULL object descriptor means an unitialized element of 227 * A NULL object descriptor means an unitialized element of
228 * the package, can't dereference it 228 * the package, can't dereference it
229 */ 229 */
230 ACPI_REPORT_ERROR(("Attempt to deref an Index to NULL pkg element Idx=%p\n", stack_desc)); 230 ACPI_ERROR((AE_INFO,
231 "Attempt to deref an Index to NULL pkg element Idx=%p",
232 stack_desc));
231 status = AE_AML_UNINITIALIZED_ELEMENT; 233 status = AE_AML_UNINITIALIZED_ELEMENT;
232 } 234 }
233 break; 235 break;
@@ -236,7 +238,10 @@ acpi_ex_resolve_object_to_value(union acpi_operand_object **stack_ptr,
236 238
237 /* Invalid reference object */ 239 /* Invalid reference object */
238 240
239 ACPI_REPORT_ERROR(("Unknown target_type %X in Index/Reference obj %p\n", stack_desc->reference.target_type, stack_desc)); 241 ACPI_ERROR((AE_INFO,
242 "Unknown target_type %X in Index/Reference obj %p",
243 stack_desc->reference.target_type,
244 stack_desc));
240 status = AE_AML_INTERNAL; 245 status = AE_AML_INTERNAL;
241 break; 246 break;
242 } 247 }
@@ -261,7 +266,10 @@ acpi_ex_resolve_object_to_value(union acpi_operand_object **stack_ptr,
261 266
262 default: 267 default:
263 268
264 ACPI_REPORT_ERROR(("Unknown Reference opcode %X (%s) in %p\n", opcode, acpi_ps_get_opcode_name(opcode), stack_desc)); 269 ACPI_ERROR((AE_INFO,
270 "Unknown Reference opcode %X (%s) in %p",
271 opcode, acpi_ps_get_opcode_name(opcode),
272 stack_desc));
265 status = AE_AML_INTERNAL; 273 status = AE_AML_INTERNAL;
266 break; 274 break;
267 } 275 }
@@ -383,10 +391,9 @@ acpi_ex_resolve_multiple(struct acpi_walk_state *walk_state,
383 391
384 if (ACPI_GET_DESCRIPTOR_TYPE(node) != 392 if (ACPI_GET_DESCRIPTOR_TYPE(node) !=
385 ACPI_DESC_TYPE_NAMED) { 393 ACPI_DESC_TYPE_NAMED) {
386 ACPI_REPORT_ERROR(("Not a NS node %p [%s]\n", 394 ACPI_ERROR((AE_INFO, "Not a NS node %p [%s]",
387 node, 395 node,
388 acpi_ut_get_descriptor_name 396 acpi_ut_get_descriptor_name(node)));
389 (node)));
390 return_ACPI_STATUS(AE_AML_INTERNAL); 397 return_ACPI_STATUS(AE_AML_INTERNAL);
391 } 398 }
392 399
@@ -442,10 +449,9 @@ acpi_ex_resolve_multiple(struct acpi_walk_state *walk_state,
442 449
443 if (ACPI_GET_DESCRIPTOR_TYPE(node) != 450 if (ACPI_GET_DESCRIPTOR_TYPE(node) !=
444 ACPI_DESC_TYPE_NAMED) { 451 ACPI_DESC_TYPE_NAMED) {
445 ACPI_REPORT_ERROR(("Not a NS node %p [%s]\n", 452 ACPI_ERROR((AE_INFO, "Not a NS node %p [%s]",
446 node, 453 node,
447 acpi_ut_get_descriptor_name 454 acpi_ut_get_descriptor_name(node)));
448 (node)));
449 return_ACPI_STATUS(AE_AML_INTERNAL); 455 return_ACPI_STATUS(AE_AML_INTERNAL);
450 } 456 }
451 457
@@ -514,8 +520,9 @@ acpi_ex_resolve_multiple(struct acpi_walk_state *walk_state,
514 520
515 default: 521 default:
516 522
517 ACPI_REPORT_ERROR(("Unknown Reference subtype %X\n", 523 ACPI_ERROR((AE_INFO,
518 obj_desc->reference.opcode)); 524 "Unknown Reference subtype %X",
525 obj_desc->reference.opcode));
519 return_ACPI_STATUS(AE_AML_INTERNAL); 526 return_ACPI_STATUS(AE_AML_INTERNAL);
520 } 527 }
521 } 528 }