diff options
author | Bob Moore <robert.moore@intel.com> | 2006-10-03 00:00:00 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2006-04-01 01:26:39 -0500 |
commit | 8313524a0d466f451a62709aaedf988d8257b21c (patch) | |
tree | d612fc796ae07d8a39542c95eec0f5169c9f64eb /drivers/acpi/executer/exoparg1.c | |
parent | ea936b78f46cbe089a4ac363e1682dee7d427096 (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.c | 17 |
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 | } |