ACPICA: Fix a fault when storing DdbHandle to Debug object
authorBob Moore <robert.moore@intel.com>
Thu, 10 Apr 2008 15:06:39 +0000 (19:06 +0400)
committerLen Brown <len.brown@intel.com>
Tue, 22 Apr 2008 18:29:25 +0000 (14:29 -0400)
Fixed a problem with the Debug object where a store of a DdbHandle
reference object to the Debug object could cause a fault.

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/executer/exstore.c

index f88b181..912889e 100644 (file)
@@ -123,6 +123,8 @@ acpi_ex_do_debug_object(union acpi_operand_object *source_desc,
                return_VOID;
        }
 
+       /* source_desc is of type ACPI_DESC_TYPE_OPERAND */
+
        switch (ACPI_GET_OBJECT_TYPE(source_desc)) {
        case ACPI_TYPE_INTEGER:
 
@@ -180,11 +182,19 @@ acpi_ex_do_debug_object(union acpi_operand_object *source_desc,
                                              (source_desc->reference.opcode),
                                              source_desc->reference.offset));
                } else {
-                       ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT, "[%s]\n",
+                       ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT, "[%s]",
                                              acpi_ps_get_opcode_name
                                              (source_desc->reference.opcode)));
                }
 
+               if (source_desc->reference.opcode == AML_LOAD_OP) {     /* Load and load_table */
+                       ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT,
+                                             " Table OwnerId %X\n",
+                                             source_desc->reference.object));
+                       break;
+               }
+
+               ACPI_DEBUG_PRINT_RAW((ACPI_DB_DEBUG_OBJECT, "\n"));
                if (source_desc->reference.object) {
                        if (ACPI_GET_DESCRIPTOR_TYPE
                            (source_desc->reference.object) ==