aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/dispatcher
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi/dispatcher')
-rw-r--r--drivers/acpi/dispatcher/dsmthdat.c15
-rw-r--r--drivers/acpi/dispatcher/dswload.c6
-rw-r--r--drivers/acpi/dispatcher/dswstate.c33
3 files changed, 8 insertions, 46 deletions
diff --git a/drivers/acpi/dispatcher/dsmthdat.c b/drivers/acpi/dispatcher/dsmthdat.c
index f7998306f756..c83d53fd6398 100644
--- a/drivers/acpi/dispatcher/dsmthdat.c
+++ b/drivers/acpi/dispatcher/dsmthdat.c
@@ -633,22 +633,11 @@ acpi_ds_store_object_to_local (
633 */ 633 */
634 if (opcode == AML_ARG_OP) { 634 if (opcode == AML_ARG_OP) {
635 /* 635 /*
636 * Make sure that the object is the correct type. This may be
637 * overkill, butit is here because references were NS nodes in
638 * the past. Now they are operand objects of type Reference.
639 */
640 if (ACPI_GET_DESCRIPTOR_TYPE (current_obj_desc) != ACPI_DESC_TYPE_OPERAND) {
641 ACPI_REPORT_ERROR ((
642 "Invalid descriptor type while storing to method arg: [%s]\n",
643 acpi_ut_get_descriptor_name (current_obj_desc)));
644 return_ACPI_STATUS (AE_AML_INTERNAL);
645 }
646
647 /*
648 * If we have a valid reference object that came from ref_of(), 636 * If we have a valid reference object that came from ref_of(),
649 * do the indirect store 637 * do the indirect store
650 */ 638 */
651 if ((current_obj_desc->common.type == ACPI_TYPE_LOCAL_REFERENCE) && 639 if ((ACPI_GET_DESCRIPTOR_TYPE (current_obj_desc) == ACPI_DESC_TYPE_OPERAND) &&
640 (current_obj_desc->common.type == ACPI_TYPE_LOCAL_REFERENCE) &&
652 (current_obj_desc->reference.opcode == AML_REF_OF_OP)) { 641 (current_obj_desc->reference.opcode == AML_REF_OF_OP)) {
653 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, 642 ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
654 "Arg (%p) is an obj_ref(Node), storing in node %p\n", 643 "Arg (%p) is an obj_ref(Node), storing in node %p\n",
diff --git a/drivers/acpi/dispatcher/dswload.c b/drivers/acpi/dispatcher/dswload.c
index e2e0a855be2c..d2c603f54fd6 100644
--- a/drivers/acpi/dispatcher/dswload.c
+++ b/drivers/acpi/dispatcher/dswload.c
@@ -50,7 +50,7 @@
50#include <acpi/acnamesp.h> 50#include <acpi/acnamesp.h>
51#include <acpi/acevents.h> 51#include <acpi/acevents.h>
52 52
53#ifdef _ACPI_ASL_COMPILER 53#ifdef ACPI_ASL_COMPILER
54#include <acpi/acdisasm.h> 54#include <acpi/acdisasm.h>
55#endif 55#endif
56 56
@@ -176,7 +176,7 @@ acpi_ds_load1_begin_op (
176 */ 176 */
177 status = acpi_ns_lookup (walk_state->scope_info, path, object_type, 177 status = acpi_ns_lookup (walk_state->scope_info, path, object_type,
178 ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, walk_state, &(node)); 178 ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, walk_state, &(node));
179#ifdef _ACPI_ASL_COMPILER 179#ifdef ACPI_ASL_COMPILER
180 if (status == AE_NOT_FOUND) { 180 if (status == AE_NOT_FOUND) {
181 /* 181 /*
182 * Table disassembly: 182 * Table disassembly:
@@ -569,7 +569,7 @@ acpi_ds_load2_begin_op (
569 ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT, 569 ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT,
570 walk_state, &(node)); 570 walk_state, &(node));
571 if (ACPI_FAILURE (status)) { 571 if (ACPI_FAILURE (status)) {
572#ifdef _ACPI_ASL_COMPILER 572#ifdef ACPI_ASL_COMPILER
573 if (status == AE_NOT_FOUND) { 573 if (status == AE_NOT_FOUND) {
574 status = AE_OK; 574 status = AE_OK;
575 } 575 }
diff --git a/drivers/acpi/dispatcher/dswstate.c b/drivers/acpi/dispatcher/dswstate.c
index cc45d52225d6..d360d8e89544 100644
--- a/drivers/acpi/dispatcher/dswstate.c
+++ b/drivers/acpi/dispatcher/dswstate.c
@@ -681,7 +681,7 @@ acpi_ds_create_walk_state (
681 ACPI_FUNCTION_TRACE ("ds_create_walk_state"); 681 ACPI_FUNCTION_TRACE ("ds_create_walk_state");
682 682
683 683
684 walk_state = acpi_ut_acquire_from_cache (ACPI_MEM_LIST_WALK); 684 walk_state = ACPI_MEM_CALLOCATE (sizeof (struct acpi_walk_state));
685 if (!walk_state) { 685 if (!walk_state) {
686 return_PTR (NULL); 686 return_PTR (NULL);
687 } 687 }
@@ -704,7 +704,7 @@ acpi_ds_create_walk_state (
704 704
705 status = acpi_ds_result_stack_push (walk_state); 705 status = acpi_ds_result_stack_push (walk_state);
706 if (ACPI_FAILURE (status)) { 706 if (ACPI_FAILURE (status)) {
707 acpi_ut_release_to_cache (ACPI_MEM_LIST_WALK, walk_state); 707 ACPI_MEM_FREE (walk_state);
708 return_PTR (NULL); 708 return_PTR (NULL);
709 } 709 }
710 710
@@ -900,38 +900,11 @@ acpi_ds_delete_walk_state (
900 acpi_ut_delete_generic_state (state); 900 acpi_ut_delete_generic_state (state);
901 } 901 }
902 902
903 acpi_ut_release_to_cache (ACPI_MEM_LIST_WALK, walk_state); 903 ACPI_MEM_FREE (walk_state);
904 return_VOID; 904 return_VOID;
905} 905}
906 906
907 907
908#ifdef ACPI_ENABLE_OBJECT_CACHE
909/******************************************************************************
910 *
911 * FUNCTION: acpi_ds_delete_walk_state_cache
912 *
913 * PARAMETERS: None
914 *
915 * RETURN: None
916 *
917 * DESCRIPTION: Purge the global state object cache. Used during subsystem
918 * termination.
919 *
920 ******************************************************************************/
921
922void
923acpi_ds_delete_walk_state_cache (
924 void)
925{
926 ACPI_FUNCTION_TRACE ("ds_delete_walk_state_cache");
927
928
929 acpi_ut_delete_generic_cache (ACPI_MEM_LIST_WALK);
930 return_VOID;
931}
932#endif
933
934
935#ifdef ACPI_OBSOLETE_FUNCTIONS 908#ifdef ACPI_OBSOLETE_FUNCTIONS
936/******************************************************************************* 909/*******************************************************************************
937 * 910 *