diff options
Diffstat (limited to 'drivers/acpi/executer')
-rw-r--r-- | drivers/acpi/executer/exconfig.c | 2 | ||||
-rw-r--r-- | drivers/acpi/executer/exdump.c | 2 | ||||
-rw-r--r-- | drivers/acpi/executer/exoparg1.c | 15 | ||||
-rw-r--r-- | drivers/acpi/executer/exresop.c | 16 |
4 files changed, 21 insertions, 14 deletions
diff --git a/drivers/acpi/executer/exconfig.c b/drivers/acpi/executer/exconfig.c index 8bfa6effaa0c..76c6ebd0231f 100644 --- a/drivers/acpi/executer/exconfig.c +++ b/drivers/acpi/executer/exconfig.c | |||
@@ -487,7 +487,7 @@ acpi_ex_unload_table ( | |||
487 | * Delete the entire namespace under this table Node | 487 | * Delete the entire namespace under this table Node |
488 | * (Offset contains the table_id) | 488 | * (Offset contains the table_id) |
489 | */ | 489 | */ |
490 | acpi_ns_delete_namespace_by_owner (table_info->table_id); | 490 | acpi_ns_delete_namespace_by_owner (table_info->owner_id); |
491 | 491 | ||
492 | /* Delete the table itself */ | 492 | /* Delete the table itself */ |
493 | 493 | ||
diff --git a/drivers/acpi/executer/exdump.c b/drivers/acpi/executer/exdump.c index 7007abb6051e..6158f5193f4a 100644 --- a/drivers/acpi/executer/exdump.c +++ b/drivers/acpi/executer/exdump.c | |||
@@ -819,7 +819,7 @@ acpi_ex_dump_object_descriptor ( | |||
819 | acpi_ex_out_integer ("param_count", obj_desc->method.param_count); | 819 | acpi_ex_out_integer ("param_count", obj_desc->method.param_count); |
820 | acpi_ex_out_integer ("Concurrency", obj_desc->method.concurrency); | 820 | acpi_ex_out_integer ("Concurrency", obj_desc->method.concurrency); |
821 | acpi_ex_out_pointer ("Semaphore", obj_desc->method.semaphore); | 821 | acpi_ex_out_pointer ("Semaphore", obj_desc->method.semaphore); |
822 | acpi_ex_out_integer ("owning_id", obj_desc->method.owning_id); | 822 | acpi_ex_out_integer ("owner_id", obj_desc->method.owner_id); |
823 | acpi_ex_out_integer ("aml_length", obj_desc->method.aml_length); | 823 | acpi_ex_out_integer ("aml_length", obj_desc->method.aml_length); |
824 | acpi_ex_out_pointer ("aml_start", obj_desc->method.aml_start); | 824 | acpi_ex_out_pointer ("aml_start", obj_desc->method.aml_start); |
825 | break; | 825 | break; |
diff --git a/drivers/acpi/executer/exoparg1.c b/drivers/acpi/executer/exoparg1.c index 131f49acb1df..c1ba8b48228e 100644 --- a/drivers/acpi/executer/exoparg1.c +++ b/drivers/acpi/executer/exoparg1.c | |||
@@ -904,6 +904,7 @@ acpi_ex_opcode_1A_0T_1R ( | |||
904 | */ | 904 | */ |
905 | return_desc = acpi_ns_get_attached_object ( | 905 | return_desc = acpi_ns_get_attached_object ( |
906 | (struct acpi_namespace_node *) operand[0]); | 906 | (struct acpi_namespace_node *) operand[0]); |
907 | acpi_ut_add_reference (return_desc); | ||
907 | } | 908 | } |
908 | else { | 909 | else { |
909 | /* | 910 | /* |
@@ -953,20 +954,10 @@ acpi_ex_opcode_1A_0T_1R ( | |||
953 | * add another reference to the referenced object, however. | 954 | * add another reference to the referenced object, however. |
954 | */ | 955 | */ |
955 | return_desc = *(operand[0]->reference.where); | 956 | return_desc = *(operand[0]->reference.where); |
956 | if (!return_desc) { | 957 | if (return_desc) { |
957 | /* | 958 | acpi_ut_add_reference (return_desc); |
958 | * We can't return a NULL dereferenced value. This is | ||
959 | * an uninitialized package element and is thus a | ||
960 | * severe error. | ||
961 | */ | ||
962 | ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, | ||
963 | "NULL package element obj %p\n", | ||
964 | operand[0])); | ||
965 | status = AE_AML_UNINITIALIZED_ELEMENT; | ||
966 | goto cleanup; | ||
967 | } | 959 | } |
968 | 960 | ||
969 | acpi_ut_add_reference (return_desc); | ||
970 | break; | 961 | break; |
971 | 962 | ||
972 | 963 | ||
diff --git a/drivers/acpi/executer/exresop.c b/drivers/acpi/executer/exresop.c index d8b470eefe7a..aaba7abcb52d 100644 --- a/drivers/acpi/executer/exresop.c +++ b/drivers/acpi/executer/exresop.c | |||
@@ -426,6 +426,10 @@ acpi_ex_resolve_operands ( | |||
426 | 426 | ||
427 | return_ACPI_STATUS (status); | 427 | return_ACPI_STATUS (status); |
428 | } | 428 | } |
429 | |||
430 | if (obj_desc != *stack_ptr) { | ||
431 | acpi_ut_remove_reference (obj_desc); | ||
432 | } | ||
429 | goto next_operand; | 433 | goto next_operand; |
430 | 434 | ||
431 | 435 | ||
@@ -448,6 +452,10 @@ acpi_ex_resolve_operands ( | |||
448 | 452 | ||
449 | return_ACPI_STATUS (status); | 453 | return_ACPI_STATUS (status); |
450 | } | 454 | } |
455 | |||
456 | if (obj_desc != *stack_ptr) { | ||
457 | acpi_ut_remove_reference (obj_desc); | ||
458 | } | ||
451 | goto next_operand; | 459 | goto next_operand; |
452 | 460 | ||
453 | 461 | ||
@@ -471,6 +479,10 @@ acpi_ex_resolve_operands ( | |||
471 | 479 | ||
472 | return_ACPI_STATUS (status); | 480 | return_ACPI_STATUS (status); |
473 | } | 481 | } |
482 | |||
483 | if (obj_desc != *stack_ptr) { | ||
484 | acpi_ut_remove_reference (obj_desc); | ||
485 | } | ||
474 | goto next_operand; | 486 | goto next_operand; |
475 | 487 | ||
476 | 488 | ||
@@ -515,6 +527,10 @@ acpi_ex_resolve_operands ( | |||
515 | if (ACPI_FAILURE (status)) { | 527 | if (ACPI_FAILURE (status)) { |
516 | return_ACPI_STATUS (status); | 528 | return_ACPI_STATUS (status); |
517 | } | 529 | } |
530 | |||
531 | if (obj_desc != *stack_ptr) { | ||
532 | acpi_ut_remove_reference (obj_desc); | ||
533 | } | ||
518 | break; | 534 | break; |
519 | 535 | ||
520 | default: | 536 | default: |