aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/executer/exoparg1.c
diff options
context:
space:
mode:
authorBob Moore <robert.moore@intel.com>2006-10-03 00:00:00 -0400
committerLen Brown <len.brown@intel.com>2006-04-01 01:26:39 -0500
commit8313524a0d466f451a62709aaedf988d8257b21c (patch)
treed612fc796ae07d8a39542c95eec0f5169c9f64eb /drivers/acpi/executer/exoparg1.c
parentea936b78f46cbe089a4ac363e1682dee7d427096 (diff)
ACPI: ACPICA 20060310
Tagged all external interfaces to the subsystem with the new ACPI_EXPORT_SYMBOL macro. This macro can be defined as necessary to assist kernel integration. For Linux, the macro resolves to the EXPORT_SYMBOL macro. The default definition is NULL. Added the ACPI_THREAD_ID type for the return value from acpi_os_get_thread_id(). This allows the host to define this as necessary to simplify kernel integration. The default definition is ACPI_NATIVE_UINT. Valery Podrezov fixed two interpreter problems related to error processing, the deletion of objects, and placing invalid pointers onto the internal operator result stack. http://bugzilla.kernel.org/show_bug.cgi?id=6028 http://bugzilla.kernel.org/show_bug.cgi?id=6151 Increased the reference count threshold where a warning is emitted for large reference counts in order to eliminate unnecessary warnings on systems with large namespaces (especially 64-bit.) Increased the value from 0x400 to 0x800. Due to universal disagreement as to the meaning of the 'c' in the calloc() function, the ACPI_MEM_CALLOCATE macro has been renamed to ACPI_ALLOCATE_ZEROED so that the purpose of the interface is 'clear'. ACPI_MEM_ALLOCATE and ACPI_MEM_FREE are renamed to ACPI_ALLOCATE and ACPI_FREE. Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/executer/exoparg1.c')
-rw-r--r--drivers/acpi/executer/exoparg1.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/drivers/acpi/executer/exoparg1.c b/drivers/acpi/executer/exoparg1.c
index 4f3627ee2b2..d00f766246f 100644
--- a/drivers/acpi/executer/exoparg1.c
+++ b/drivers/acpi/executer/exoparg1.c
@@ -554,16 +554,18 @@ acpi_status acpi_ex_opcode_1A_1T_1R(struct acpi_walk_state *walk_state)
554 554
555 cleanup: 555 cleanup:
556 556
557 if (!walk_state->result_obj) {
558 walk_state->result_obj = return_desc;
559 }
560
561 /* Delete return object on error */ 557 /* Delete return object on error */
562 558
563 if (ACPI_FAILURE(status)) { 559 if (ACPI_FAILURE(status)) {
564 acpi_ut_remove_reference(return_desc); 560 acpi_ut_remove_reference(return_desc);
565 } 561 }
566 562
563 /* Save return object on success */
564
565 else if (!walk_state->result_obj) {
566 walk_state->result_obj = return_desc;
567 }
568
567 return_ACPI_STATUS(status); 569 return_ACPI_STATUS(status);
568} 570}
569 571
@@ -1028,6 +1030,11 @@ acpi_status acpi_ex_opcode_1A_0T_1R(struct acpi_walk_state *walk_state)
1028 acpi_ut_remove_reference(return_desc); 1030 acpi_ut_remove_reference(return_desc);
1029 } 1031 }
1030 1032
1031 walk_state->result_obj = return_desc; 1033 /* Save return object on success */
1034
1035 else {
1036 walk_state->result_obj = return_desc;
1037 }
1038
1032 return_ACPI_STATUS(status); 1039 return_ACPI_STATUS(status);
1033} 1040}