linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / drivers / acpi / tables / tbinstal.c
index 1668a23..7ffd0fd 100644 (file)
@@ -73,18 +73,17 @@ acpi_tb_match_signature(char *signature,
 {
        acpi_native_uint i;
 
-       ACPI_FUNCTION_TRACE(tb_match_signature);
+       ACPI_FUNCTION_TRACE("tb_match_signature");
 
        /* Search for a signature match among the known table types */
 
-       for (i = 0; i < (ACPI_TABLE_ID_MAX + 1); i++) {
+       for (i = 0; i < NUM_ACPI_TABLE_TYPES; i++) {
                if (!(acpi_gbl_table_data[i].flags & search_type)) {
                        continue;
                }
 
                if (!ACPI_STRNCMP(signature, acpi_gbl_table_data[i].signature,
                                  acpi_gbl_table_data[i].sig_length)) {
-
                        /* Found a signature match, return index if requested */
 
                        if (table_info) {
@@ -123,7 +122,7 @@ acpi_status acpi_tb_install_table(struct acpi_table_desc *table_info)
 {
        acpi_status status;
 
-       ACPI_FUNCTION_TRACE(tb_install_table);
+       ACPI_FUNCTION_TRACE("tb_install_table");
 
        /* Lock tables while installing */
 
@@ -188,7 +187,7 @@ acpi_tb_recognize_table(struct acpi_table_desc *table_info, u8 search_type)
        struct acpi_table_header *table_header;
        acpi_status status;
 
-       ACPI_FUNCTION_TRACE(tb_recognize_table);
+       ACPI_FUNCTION_TRACE("tb_recognize_table");
 
        /* Ensure that we have a valid table pointer */
 
@@ -219,6 +218,7 @@ acpi_tb_recognize_table(struct acpi_table_desc *table_info, u8 search_type)
        /* Return the table type and length via the info struct */
 
        table_info->length = (acpi_size) table_header->length;
+
        return_ACPI_STATUS(status);
 }
 
@@ -243,11 +243,11 @@ acpi_tb_init_table_descriptor(acpi_table_type table_type,
        struct acpi_table_desc *table_desc;
        acpi_status status;
 
-       ACPI_FUNCTION_TRACE_U32(tb_init_table_descriptor, table_type);
+       ACPI_FUNCTION_TRACE_U32("tb_init_table_descriptor", table_type);
 
        /* Allocate a descriptor for this table */
 
-       table_desc = ACPI_ALLOCATE_ZEROED(sizeof(struct acpi_table_desc));
+       table_desc = ACPI_MEM_CALLOCATE(sizeof(struct acpi_table_desc));
        if (!table_desc) {
                return_ACPI_STATUS(AE_NO_MEMORY);
        }
@@ -256,7 +256,7 @@ acpi_tb_init_table_descriptor(acpi_table_type table_type,
 
        status = acpi_ut_allocate_owner_id(&table_desc->owner_id);
        if (ACPI_FAILURE(status)) {
-               goto error_exit1;
+               return_ACPI_STATUS(status);
        }
 
        /* Install the table into the global data structure */
@@ -274,8 +274,8 @@ acpi_tb_init_table_descriptor(acpi_table_type table_type,
                 * at this location, so return an error.
                 */
                if (list_head->next) {
-                       status = AE_ALREADY_EXISTS;
-                       goto error_exit2;
+                       ACPI_MEM_FREE(table_desc);
+                       return_ACPI_STATUS(AE_ALREADY_EXISTS);
                }
 
                table_desc->next = list_head->next;
@@ -312,14 +312,15 @@ acpi_tb_init_table_descriptor(acpi_table_type table_type,
 
        /* Finish initialization of the table descriptor */
 
-       table_desc->loaded_into_namespace = FALSE;
        table_desc->type = (u8) table_type;
        table_desc->pointer = table_info->pointer;
        table_desc->length = table_info->length;
        table_desc->allocation = table_info->allocation;
        table_desc->aml_start = (u8 *) (table_desc->pointer + 1),
-           table_desc->aml_length = (u32)
-           (table_desc->length - (u32) sizeof(struct acpi_table_header));
+           table_desc->aml_length = (u32) (table_desc->length -
+                                           (u32) sizeof(struct
+                                                        acpi_table_header));
+       table_desc->loaded_into_namespace = FALSE;
 
        /*
         * Set the appropriate global pointer (if there is one) to point to the
@@ -334,18 +335,8 @@ acpi_tb_init_table_descriptor(acpi_table_type table_type,
 
        table_info->owner_id = table_desc->owner_id;
        table_info->installed_desc = table_desc;
-       return_ACPI_STATUS(AE_OK);
-
-       /* Error exit with cleanup */
 
-      error_exit2:
-
-       acpi_ut_release_owner_id(&table_desc->owner_id);
-
-      error_exit1:
-
-       ACPI_FREE(table_desc);
-       return_ACPI_STATUS(status);
+       return_ACPI_STATUS(AE_OK);
 }
 
 /*******************************************************************************
@@ -368,7 +359,7 @@ void acpi_tb_delete_all_tables(void)
         * Free memory allocated for ACPI tables
         * Memory can either be mapped or allocated
         */
-       for (type = 0; type < (ACPI_TABLE_ID_MAX + 1); type++) {
+       for (type = 0; type < NUM_ACPI_TABLE_TYPES; type++) {
                acpi_tb_delete_tables_by_type(type);
        }
 }
@@ -392,9 +383,9 @@ void acpi_tb_delete_tables_by_type(acpi_table_type type)
        u32 count;
        u32 i;
 
-       ACPI_FUNCTION_TRACE_U32(tb_delete_tables_by_type, type);
+       ACPI_FUNCTION_TRACE_U32("tb_delete_tables_by_type", type);
 
-       if (type > ACPI_TABLE_ID_MAX) {
+       if (type > ACPI_TABLE_MAX) {
                return_VOID;
        }
 
@@ -405,28 +396,28 @@ void acpi_tb_delete_tables_by_type(acpi_table_type type)
        /* Clear the appropriate "typed" global table pointer */
 
        switch (type) {
-       case ACPI_TABLE_ID_RSDP:
+       case ACPI_TABLE_RSDP:
                acpi_gbl_RSDP = NULL;
                break;
 
-       case ACPI_TABLE_ID_DSDT:
+       case ACPI_TABLE_DSDT:
                acpi_gbl_DSDT = NULL;
                break;
 
-       case ACPI_TABLE_ID_FADT:
+       case ACPI_TABLE_FADT:
                acpi_gbl_FADT = NULL;
                break;
 
-       case ACPI_TABLE_ID_FACS:
+       case ACPI_TABLE_FACS:
                acpi_gbl_FACS = NULL;
                break;
 
-       case ACPI_TABLE_ID_XSDT:
+       case ACPI_TABLE_XSDT:
                acpi_gbl_XSDT = NULL;
                break;
 
-       case ACPI_TABLE_ID_SSDT:
-       case ACPI_TABLE_ID_PSDT:
+       case ACPI_TABLE_SSDT:
+       case ACPI_TABLE_PSDT:
        default:
                break;
        }
@@ -480,7 +471,7 @@ void acpi_tb_delete_single_table(struct acpi_table_desc *table_desc)
 
        case ACPI_MEM_ALLOCATED:
 
-               ACPI_FREE(table_desc->pointer);
+               ACPI_MEM_FREE(table_desc->pointer);
                break;
 
        case ACPI_MEM_MAPPED:
@@ -512,7 +503,7 @@ struct acpi_table_desc *acpi_tb_uninstall_table(struct acpi_table_desc
 {
        struct acpi_table_desc *next_desc;
 
-       ACPI_FUNCTION_TRACE_PTR(tb_uninstall_table, table_desc);
+       ACPI_FUNCTION_TRACE_PTR("tb_uninstall_table", table_desc);
 
        if (!table_desc) {
                return_PTR(NULL);
@@ -536,14 +527,10 @@ struct acpi_table_desc *acpi_tb_uninstall_table(struct acpi_table_desc
 
        acpi_tb_delete_single_table(table_desc);
 
-       /* Free the owner ID associated with this table */
-
-       acpi_ut_release_owner_id(&table_desc->owner_id);
-
        /* Free the table descriptor */
 
        next_desc = table_desc->next;
-       ACPI_FREE(table_desc);
+       ACPI_MEM_FREE(table_desc);
 
        /* Return pointer to the next descriptor */