ACPICA: update Intel copyright
[deliverable/linux.git] / drivers / acpi / namespace / nsparse.c
index 86bd6e5920c7baa1165e8d2e0da8024ea24a3468..46a79b0103b676ef5edf0008f40f70f1eb0ad80a 100644 (file)
@@ -5,7 +5,7 @@
  *****************************************************************************/
 
 /*
- * Copyright (C) 2000 - 2007, R. Byron Moore
+ * Copyright (C) 2000 - 2008, Intel Corp.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -112,21 +112,25 @@ acpi_ns_one_complete_parse(acpi_native_uint pass_number,
                aml_start = (u8 *) table + sizeof(struct acpi_table_header);
                aml_length = table->length - sizeof(struct acpi_table_header);
                status = acpi_ds_init_aml_walk(walk_state, parse_root, NULL,
-                                              aml_start, aml_length, NULL,
-                                              (u8) pass_number);
+                                              aml_start, (u32) aml_length,
+                                              NULL, (u8) pass_number);
        }
 
        if (ACPI_FAILURE(status)) {
                acpi_ds_delete_walk_state(walk_state);
-               acpi_ps_delete_parse_tree(parse_root);
-               return_ACPI_STATUS(status);
+               goto cleanup;
        }
 
        /* start_node is the default location to load the table */
 
        if (start_node && start_node != acpi_gbl_root_node) {
-               acpi_ds_scope_stack_push(start_node, ACPI_TYPE_METHOD,
-                                        walk_state);
+               status =
+                   acpi_ds_scope_stack_push(start_node, ACPI_TYPE_METHOD,
+                                            walk_state);
+               if (ACPI_FAILURE(status)) {
+                       acpi_ds_delete_walk_state(walk_state);
+                       goto cleanup;
+               }
        }
 
        /* Parse the AML */
@@ -135,6 +139,7 @@ acpi_ns_one_complete_parse(acpi_native_uint pass_number,
                          (unsigned)pass_number));
        status = acpi_ps_parse_aml(walk_state);
 
+      cleanup:
        acpi_ps_delete_parse_tree(parse_root);
        return_ACPI_STATUS(status);
 }
This page took 0.029948 seconds and 5 git commands to generate.