diff options
Diffstat (limited to 'drivers/acpi/tables/tbxface.c')
| -rw-r--r-- | drivers/acpi/tables/tbxface.c | 246 |
1 files changed, 107 insertions, 139 deletions
diff --git a/drivers/acpi/tables/tbxface.c b/drivers/acpi/tables/tbxface.c index e18a05d1b9b3..3f96a4909aad 100644 --- a/drivers/acpi/tables/tbxface.c +++ b/drivers/acpi/tables/tbxface.c | |||
| @@ -48,10 +48,8 @@ | |||
| 48 | #include <acpi/acnamesp.h> | 48 | #include <acpi/acnamesp.h> |
| 49 | #include <acpi/actables.h> | 49 | #include <acpi/actables.h> |
| 50 | 50 | ||
| 51 | |||
| 52 | #define _COMPONENT ACPI_TABLES | 51 | #define _COMPONENT ACPI_TABLES |
| 53 | ACPI_MODULE_NAME ("tbxface") | 52 | ACPI_MODULE_NAME("tbxface") |
| 54 | |||
| 55 | 53 | ||
| 56 | /******************************************************************************* | 54 | /******************************************************************************* |
| 57 | * | 55 | * |
| @@ -65,25 +63,20 @@ | |||
| 65 | * provided RSDT | 63 | * provided RSDT |
| 66 | * | 64 | * |
| 67 | ******************************************************************************/ | 65 | ******************************************************************************/ |
| 68 | 66 | acpi_status acpi_load_tables(void) | |
| 69 | acpi_status | ||
| 70 | acpi_load_tables ( | ||
| 71 | void) | ||
| 72 | { | 67 | { |
| 73 | struct acpi_pointer rsdp_address; | 68 | struct acpi_pointer rsdp_address; |
| 74 | acpi_status status; | 69 | acpi_status status; |
| 75 | |||
| 76 | |||
| 77 | ACPI_FUNCTION_TRACE ("acpi_load_tables"); | ||
| 78 | 70 | ||
| 71 | ACPI_FUNCTION_TRACE("acpi_load_tables"); | ||
| 79 | 72 | ||
| 80 | /* Get the RSDP */ | 73 | /* Get the RSDP */ |
| 81 | 74 | ||
| 82 | status = acpi_os_get_root_pointer (ACPI_LOGICAL_ADDRESSING, | 75 | status = acpi_os_get_root_pointer(ACPI_LOGICAL_ADDRESSING, |
| 83 | &rsdp_address); | 76 | &rsdp_address); |
| 84 | if (ACPI_FAILURE (status)) { | 77 | if (ACPI_FAILURE(status)) { |
| 85 | ACPI_REPORT_ERROR (("acpi_load_tables: Could not get RSDP, %s\n", | 78 | ACPI_REPORT_ERROR(("acpi_load_tables: Could not get RSDP, %s\n", |
| 86 | acpi_format_exception (status))); | 79 | acpi_format_exception(status))); |
| 87 | goto error_exit; | 80 | goto error_exit; |
| 88 | } | 81 | } |
| 89 | 82 | ||
| @@ -91,54 +84,47 @@ acpi_load_tables ( | |||
| 91 | 84 | ||
| 92 | acpi_gbl_table_flags = rsdp_address.pointer_type; | 85 | acpi_gbl_table_flags = rsdp_address.pointer_type; |
| 93 | 86 | ||
| 94 | status = acpi_tb_verify_rsdp (&rsdp_address); | 87 | status = acpi_tb_verify_rsdp(&rsdp_address); |
| 95 | if (ACPI_FAILURE (status)) { | 88 | if (ACPI_FAILURE(status)) { |
| 96 | ACPI_REPORT_ERROR (("acpi_load_tables: RSDP Failed validation: %s\n", | 89 | ACPI_REPORT_ERROR(("acpi_load_tables: RSDP Failed validation: %s\n", acpi_format_exception(status))); |
| 97 | acpi_format_exception (status))); | ||
| 98 | goto error_exit; | 90 | goto error_exit; |
| 99 | } | 91 | } |
| 100 | 92 | ||
| 101 | /* Get the RSDT via the RSDP */ | 93 | /* Get the RSDT via the RSDP */ |
| 102 | 94 | ||
| 103 | status = acpi_tb_get_table_rsdt (); | 95 | status = acpi_tb_get_table_rsdt(); |
| 104 | if (ACPI_FAILURE (status)) { | 96 | if (ACPI_FAILURE(status)) { |
| 105 | ACPI_REPORT_ERROR (("acpi_load_tables: Could not load RSDT: %s\n", | 97 | ACPI_REPORT_ERROR(("acpi_load_tables: Could not load RSDT: %s\n", acpi_format_exception(status))); |
| 106 | acpi_format_exception (status))); | ||
| 107 | goto error_exit; | 98 | goto error_exit; |
| 108 | } | 99 | } |
| 109 | 100 | ||
| 110 | /* Now get the tables needed by this subsystem (FADT, DSDT, etc.) */ | 101 | /* Now get the tables needed by this subsystem (FADT, DSDT, etc.) */ |
| 111 | 102 | ||
| 112 | status = acpi_tb_get_required_tables (); | 103 | status = acpi_tb_get_required_tables(); |
| 113 | if (ACPI_FAILURE (status)) { | 104 | if (ACPI_FAILURE(status)) { |
| 114 | ACPI_REPORT_ERROR (( | 105 | ACPI_REPORT_ERROR(("acpi_load_tables: Error getting required tables (DSDT/FADT/FACS): %s\n", acpi_format_exception(status))); |
| 115 | "acpi_load_tables: Error getting required tables (DSDT/FADT/FACS): %s\n", | ||
| 116 | acpi_format_exception (status))); | ||
| 117 | goto error_exit; | 106 | goto error_exit; |
| 118 | } | 107 | } |
| 119 | 108 | ||
| 120 | ACPI_DEBUG_PRINT ((ACPI_DB_INIT, "ACPI Tables successfully acquired\n")); | 109 | ACPI_DEBUG_PRINT((ACPI_DB_INIT, "ACPI Tables successfully acquired\n")); |
| 121 | 110 | ||
| 122 | /* Load the namespace from the tables */ | 111 | /* Load the namespace from the tables */ |
| 123 | 112 | ||
| 124 | status = acpi_ns_load_namespace (); | 113 | status = acpi_ns_load_namespace(); |
| 125 | if (ACPI_FAILURE (status)) { | 114 | if (ACPI_FAILURE(status)) { |
| 126 | ACPI_REPORT_ERROR (("acpi_load_tables: Could not load namespace: %s\n", | 115 | ACPI_REPORT_ERROR(("acpi_load_tables: Could not load namespace: %s\n", acpi_format_exception(status))); |
| 127 | acpi_format_exception (status))); | ||
| 128 | goto error_exit; | 116 | goto error_exit; |
| 129 | } | 117 | } |
| 130 | 118 | ||
| 131 | return_ACPI_STATUS (AE_OK); | 119 | return_ACPI_STATUS(AE_OK); |
| 132 | 120 | ||
| 121 | error_exit: | ||
| 122 | ACPI_REPORT_ERROR(("acpi_load_tables: Could not load tables: %s\n", | ||
| 123 | acpi_format_exception(status))); | ||
| 133 | 124 | ||
| 134 | error_exit: | 125 | return_ACPI_STATUS(status); |
| 135 | ACPI_REPORT_ERROR (("acpi_load_tables: Could not load tables: %s\n", | ||
| 136 | acpi_format_exception (status))); | ||
| 137 | |||
| 138 | return_ACPI_STATUS (status); | ||
| 139 | } | 126 | } |
| 140 | 127 | ||
| 141 | |||
| 142 | #ifdef ACPI_FUTURE_USAGE | 128 | #ifdef ACPI_FUTURE_USAGE |
| 143 | /******************************************************************************* | 129 | /******************************************************************************* |
| 144 | * | 130 | * |
| @@ -156,43 +142,39 @@ error_exit: | |||
| 156 | * | 142 | * |
| 157 | ******************************************************************************/ | 143 | ******************************************************************************/ |
| 158 | 144 | ||
| 159 | acpi_status | 145 | acpi_status acpi_load_table(struct acpi_table_header *table_ptr) |
| 160 | acpi_load_table ( | ||
| 161 | struct acpi_table_header *table_ptr) | ||
| 162 | { | 146 | { |
| 163 | acpi_status status; | 147 | acpi_status status; |
| 164 | struct acpi_table_desc table_info; | 148 | struct acpi_table_desc table_info; |
| 165 | struct acpi_pointer address; | 149 | struct acpi_pointer address; |
| 166 | |||
| 167 | |||
| 168 | ACPI_FUNCTION_TRACE ("acpi_load_table"); | ||
| 169 | 150 | ||
| 151 | ACPI_FUNCTION_TRACE("acpi_load_table"); | ||
| 170 | 152 | ||
| 171 | if (!table_ptr) { | 153 | if (!table_ptr) { |
| 172 | return_ACPI_STATUS (AE_BAD_PARAMETER); | 154 | return_ACPI_STATUS(AE_BAD_PARAMETER); |
| 173 | } | 155 | } |
| 174 | 156 | ||
| 175 | /* Copy the table to a local buffer */ | 157 | /* Copy the table to a local buffer */ |
| 176 | 158 | ||
| 177 | address.pointer_type = ACPI_LOGICAL_POINTER | ACPI_LOGICAL_ADDRESSING; | 159 | address.pointer_type = ACPI_LOGICAL_POINTER | ACPI_LOGICAL_ADDRESSING; |
| 178 | address.pointer.logical = table_ptr; | 160 | address.pointer.logical = table_ptr; |
| 179 | 161 | ||
| 180 | status = acpi_tb_get_table_body (&address, table_ptr, &table_info); | 162 | status = acpi_tb_get_table_body(&address, table_ptr, &table_info); |
| 181 | if (ACPI_FAILURE (status)) { | 163 | if (ACPI_FAILURE(status)) { |
| 182 | return_ACPI_STATUS (status); | 164 | return_ACPI_STATUS(status); |
| 183 | } | 165 | } |
| 184 | 166 | ||
| 185 | /* Check signature for a valid table type */ | 167 | /* Check signature for a valid table type */ |
| 186 | 168 | ||
| 187 | status = acpi_tb_recognize_table (&table_info, ACPI_TABLE_ALL); | 169 | status = acpi_tb_recognize_table(&table_info, ACPI_TABLE_ALL); |
| 188 | if (ACPI_FAILURE (status)) { | 170 | if (ACPI_FAILURE(status)) { |
| 189 | return_ACPI_STATUS (status); | 171 | return_ACPI_STATUS(status); |
| 190 | } | 172 | } |
| 191 | 173 | ||
| 192 | /* Install the new table into the local data structures */ | 174 | /* Install the new table into the local data structures */ |
| 193 | 175 | ||
| 194 | status = acpi_tb_install_table (&table_info); | 176 | status = acpi_tb_install_table(&table_info); |
| 195 | if (ACPI_FAILURE (status)) { | 177 | if (ACPI_FAILURE(status)) { |
| 196 | if (status == AE_ALREADY_EXISTS) { | 178 | if (status == AE_ALREADY_EXISTS) { |
| 197 | /* Table already exists, no error */ | 179 | /* Table already exists, no error */ |
| 198 | 180 | ||
| @@ -201,8 +183,8 @@ acpi_load_table ( | |||
| 201 | 183 | ||
| 202 | /* Free table allocated by acpi_tb_get_table_body */ | 184 | /* Free table allocated by acpi_tb_get_table_body */ |
| 203 | 185 | ||
| 204 | acpi_tb_delete_single_table (&table_info); | 186 | acpi_tb_delete_single_table(&table_info); |
| 205 | return_ACPI_STATUS (status); | 187 | return_ACPI_STATUS(status); |
| 206 | } | 188 | } |
| 207 | 189 | ||
| 208 | /* Convert the table to common format if necessary */ | 190 | /* Convert the table to common format if necessary */ |
| @@ -210,31 +192,32 @@ acpi_load_table ( | |||
| 210 | switch (table_info.type) { | 192 | switch (table_info.type) { |
| 211 | case ACPI_TABLE_FADT: | 193 | case ACPI_TABLE_FADT: |
| 212 | 194 | ||
| 213 | status = acpi_tb_convert_table_fadt (); | 195 | status = acpi_tb_convert_table_fadt(); |
| 214 | break; | 196 | break; |
| 215 | 197 | ||
| 216 | case ACPI_TABLE_FACS: | 198 | case ACPI_TABLE_FACS: |
| 217 | 199 | ||
| 218 | status = acpi_tb_build_common_facs (&table_info); | 200 | status = acpi_tb_build_common_facs(&table_info); |
| 219 | break; | 201 | break; |
| 220 | 202 | ||
| 221 | default: | 203 | default: |
| 222 | /* Load table into namespace if it contains executable AML */ | 204 | /* Load table into namespace if it contains executable AML */ |
| 223 | 205 | ||
| 224 | status = acpi_ns_load_table (table_info.installed_desc, acpi_gbl_root_node); | 206 | status = |
| 207 | acpi_ns_load_table(table_info.installed_desc, | ||
| 208 | acpi_gbl_root_node); | ||
| 225 | break; | 209 | break; |
| 226 | } | 210 | } |
| 227 | 211 | ||
| 228 | if (ACPI_FAILURE (status)) { | 212 | if (ACPI_FAILURE(status)) { |
| 229 | /* Uninstall table and free the buffer */ | 213 | /* Uninstall table and free the buffer */ |
| 230 | 214 | ||
| 231 | (void) acpi_tb_uninstall_table (table_info.installed_desc); | 215 | (void)acpi_tb_uninstall_table(table_info.installed_desc); |
| 232 | } | 216 | } |
| 233 | 217 | ||
| 234 | return_ACPI_STATUS (status); | 218 | return_ACPI_STATUS(status); |
| 235 | } | 219 | } |
| 236 | 220 | ||
| 237 | |||
| 238 | /******************************************************************************* | 221 | /******************************************************************************* |
| 239 | * | 222 | * |
| 240 | * FUNCTION: acpi_unload_table | 223 | * FUNCTION: acpi_unload_table |
| @@ -247,20 +230,16 @@ acpi_load_table ( | |||
| 247 | * | 230 | * |
| 248 | ******************************************************************************/ | 231 | ******************************************************************************/ |
| 249 | 232 | ||
| 250 | acpi_status | 233 | acpi_status acpi_unload_table(acpi_table_type table_type) |
| 251 | acpi_unload_table ( | ||
| 252 | acpi_table_type table_type) | ||
| 253 | { | 234 | { |
| 254 | struct acpi_table_desc *table_desc; | 235 | struct acpi_table_desc *table_desc; |
| 255 | |||
| 256 | |||
| 257 | ACPI_FUNCTION_TRACE ("acpi_unload_table"); | ||
| 258 | 236 | ||
| 237 | ACPI_FUNCTION_TRACE("acpi_unload_table"); | ||
| 259 | 238 | ||
| 260 | /* Parameter validation */ | 239 | /* Parameter validation */ |
| 261 | 240 | ||
| 262 | if (table_type > ACPI_TABLE_MAX) { | 241 | if (table_type > ACPI_TABLE_MAX) { |
| 263 | return_ACPI_STATUS (AE_BAD_PARAMETER); | 242 | return_ACPI_STATUS(AE_BAD_PARAMETER); |
| 264 | } | 243 | } |
| 265 | 244 | ||
| 266 | /* Find all tables of the requested type */ | 245 | /* Find all tables of the requested type */ |
| @@ -273,18 +252,17 @@ acpi_unload_table ( | |||
| 273 | * "Scope" operator. Thus, we need to track ownership by an ID, not | 252 | * "Scope" operator. Thus, we need to track ownership by an ID, not |
| 274 | * simply a position within the hierarchy | 253 | * simply a position within the hierarchy |
| 275 | */ | 254 | */ |
| 276 | acpi_ns_delete_namespace_by_owner (table_desc->owner_id); | 255 | acpi_ns_delete_namespace_by_owner(table_desc->owner_id); |
| 277 | acpi_ut_release_owner_id (&table_desc->owner_id); | 256 | acpi_ut_release_owner_id(&table_desc->owner_id); |
| 278 | table_desc = table_desc->next; | 257 | table_desc = table_desc->next; |
| 279 | } | 258 | } |
| 280 | 259 | ||
| 281 | /* Delete (or unmap) all tables of this type */ | 260 | /* Delete (or unmap) all tables of this type */ |
| 282 | 261 | ||
| 283 | acpi_tb_delete_tables_by_type (table_type); | 262 | acpi_tb_delete_tables_by_type(table_type); |
| 284 | return_ACPI_STATUS (AE_OK); | 263 | return_ACPI_STATUS(AE_OK); |
| 285 | } | 264 | } |
| 286 | 265 | ||
| 287 | |||
| 288 | /******************************************************************************* | 266 | /******************************************************************************* |
| 289 | * | 267 | * |
| 290 | * FUNCTION: acpi_get_table_header | 268 | * FUNCTION: acpi_get_table_header |
| @@ -307,54 +285,49 @@ acpi_unload_table ( | |||
| 307 | ******************************************************************************/ | 285 | ******************************************************************************/ |
| 308 | 286 | ||
| 309 | acpi_status | 287 | acpi_status |
| 310 | acpi_get_table_header ( | 288 | acpi_get_table_header(acpi_table_type table_type, |
| 311 | acpi_table_type table_type, | 289 | u32 instance, struct acpi_table_header *out_table_header) |
| 312 | u32 instance, | ||
| 313 | struct acpi_table_header *out_table_header) | ||
| 314 | { | 290 | { |
| 315 | struct acpi_table_header *tbl_ptr; | 291 | struct acpi_table_header *tbl_ptr; |
| 316 | acpi_status status; | 292 | acpi_status status; |
| 317 | |||
| 318 | |||
| 319 | ACPI_FUNCTION_TRACE ("acpi_get_table_header"); | ||
| 320 | 293 | ||
| 294 | ACPI_FUNCTION_TRACE("acpi_get_table_header"); | ||
| 321 | 295 | ||
| 322 | if ((instance == 0) || | 296 | if ((instance == 0) || |
| 323 | (table_type == ACPI_TABLE_RSDP) || | 297 | (table_type == ACPI_TABLE_RSDP) || (!out_table_header)) { |
| 324 | (!out_table_header)) { | 298 | return_ACPI_STATUS(AE_BAD_PARAMETER); |
| 325 | return_ACPI_STATUS (AE_BAD_PARAMETER); | ||
| 326 | } | 299 | } |
| 327 | 300 | ||
| 328 | /* Check the table type and instance */ | 301 | /* Check the table type and instance */ |
| 329 | 302 | ||
| 330 | if ((table_type > ACPI_TABLE_MAX) || | 303 | if ((table_type > ACPI_TABLE_MAX) || |
| 331 | (ACPI_IS_SINGLE_TABLE (acpi_gbl_table_data[table_type].flags) && | 304 | (ACPI_IS_SINGLE_TABLE(acpi_gbl_table_data[table_type].flags) && |
| 332 | instance > 1)) { | 305 | instance > 1)) { |
| 333 | return_ACPI_STATUS (AE_BAD_PARAMETER); | 306 | return_ACPI_STATUS(AE_BAD_PARAMETER); |
| 334 | } | 307 | } |
| 335 | 308 | ||
| 336 | /* Get a pointer to the entire table */ | 309 | /* Get a pointer to the entire table */ |
| 337 | 310 | ||
| 338 | status = acpi_tb_get_table_ptr (table_type, instance, &tbl_ptr); | 311 | status = acpi_tb_get_table_ptr(table_type, instance, &tbl_ptr); |
| 339 | if (ACPI_FAILURE (status)) { | 312 | if (ACPI_FAILURE(status)) { |
| 340 | return_ACPI_STATUS (status); | 313 | return_ACPI_STATUS(status); |
| 341 | } | 314 | } |
| 342 | 315 | ||
| 343 | /* The function will return a NULL pointer if the table is not loaded */ | 316 | /* The function will return a NULL pointer if the table is not loaded */ |
| 344 | 317 | ||
| 345 | if (tbl_ptr == NULL) { | 318 | if (tbl_ptr == NULL) { |
| 346 | return_ACPI_STATUS (AE_NOT_EXIST); | 319 | return_ACPI_STATUS(AE_NOT_EXIST); |
| 347 | } | 320 | } |
| 348 | 321 | ||
| 349 | /* Copy the header to the caller's buffer */ | 322 | /* Copy the header to the caller's buffer */ |
| 350 | 323 | ||
| 351 | ACPI_MEMCPY ((void *) out_table_header, (void *) tbl_ptr, | 324 | ACPI_MEMCPY((void *)out_table_header, (void *)tbl_ptr, |
| 352 | sizeof (struct acpi_table_header)); | 325 | sizeof(struct acpi_table_header)); |
| 353 | 326 | ||
| 354 | return_ACPI_STATUS (status); | 327 | return_ACPI_STATUS(status); |
| 355 | } | 328 | } |
| 356 | 329 | ||
| 357 | #endif /* ACPI_FUTURE_USAGE */ | 330 | #endif /* ACPI_FUTURE_USAGE */ |
| 358 | 331 | ||
| 359 | /******************************************************************************* | 332 | /******************************************************************************* |
| 360 | * | 333 | * |
| @@ -380,43 +353,39 @@ acpi_get_table_header ( | |||
| 380 | ******************************************************************************/ | 353 | ******************************************************************************/ |
| 381 | 354 | ||
| 382 | acpi_status | 355 | acpi_status |
| 383 | acpi_get_table ( | 356 | acpi_get_table(acpi_table_type table_type, |
| 384 | acpi_table_type table_type, | 357 | u32 instance, struct acpi_buffer *ret_buffer) |
| 385 | u32 instance, | ||
| 386 | struct acpi_buffer *ret_buffer) | ||
| 387 | { | 358 | { |
| 388 | struct acpi_table_header *tbl_ptr; | 359 | struct acpi_table_header *tbl_ptr; |
| 389 | acpi_status status; | 360 | acpi_status status; |
| 390 | acpi_size table_length; | 361 | acpi_size table_length; |
| 391 | |||
| 392 | |||
| 393 | ACPI_FUNCTION_TRACE ("acpi_get_table"); | ||
| 394 | 362 | ||
| 363 | ACPI_FUNCTION_TRACE("acpi_get_table"); | ||
| 395 | 364 | ||
| 396 | /* Parameter validation */ | 365 | /* Parameter validation */ |
| 397 | 366 | ||
| 398 | if (instance == 0) { | 367 | if (instance == 0) { |
| 399 | return_ACPI_STATUS (AE_BAD_PARAMETER); | 368 | return_ACPI_STATUS(AE_BAD_PARAMETER); |
| 400 | } | 369 | } |
| 401 | 370 | ||
| 402 | status = acpi_ut_validate_buffer (ret_buffer); | 371 | status = acpi_ut_validate_buffer(ret_buffer); |
| 403 | if (ACPI_FAILURE (status)) { | 372 | if (ACPI_FAILURE(status)) { |
| 404 | return_ACPI_STATUS (status); | 373 | return_ACPI_STATUS(status); |
| 405 | } | 374 | } |
| 406 | 375 | ||
| 407 | /* Check the table type and instance */ | 376 | /* Check the table type and instance */ |
| 408 | 377 | ||
| 409 | if ((table_type > ACPI_TABLE_MAX) || | 378 | if ((table_type > ACPI_TABLE_MAX) || |
| 410 | (ACPI_IS_SINGLE_TABLE (acpi_gbl_table_data[table_type].flags) && | 379 | (ACPI_IS_SINGLE_TABLE(acpi_gbl_table_data[table_type].flags) && |
| 411 | instance > 1)) { | 380 | instance > 1)) { |
| 412 | return_ACPI_STATUS (AE_BAD_PARAMETER); | 381 | return_ACPI_STATUS(AE_BAD_PARAMETER); |
| 413 | } | 382 | } |
| 414 | 383 | ||
| 415 | /* Get a pointer to the entire table */ | 384 | /* Get a pointer to the entire table */ |
| 416 | 385 | ||
| 417 | status = acpi_tb_get_table_ptr (table_type, instance, &tbl_ptr); | 386 | status = acpi_tb_get_table_ptr(table_type, instance, &tbl_ptr); |
| 418 | if (ACPI_FAILURE (status)) { | 387 | if (ACPI_FAILURE(status)) { |
| 419 | return_ACPI_STATUS (status); | 388 | return_ACPI_STATUS(status); |
| 420 | } | 389 | } |
| 421 | 390 | ||
| 422 | /* | 391 | /* |
| @@ -424,7 +393,7 @@ acpi_get_table ( | |||
| 424 | * table is not loaded. | 393 | * table is not loaded. |
| 425 | */ | 394 | */ |
| 426 | if (tbl_ptr == NULL) { | 395 | if (tbl_ptr == NULL) { |
| 427 | return_ACPI_STATUS (AE_NOT_EXIST); | 396 | return_ACPI_STATUS(AE_NOT_EXIST); |
| 428 | } | 397 | } |
| 429 | 398 | ||
| 430 | /* Get the table length */ | 399 | /* Get the table length */ |
| @@ -432,23 +401,22 @@ acpi_get_table ( | |||
| 432 | if (table_type == ACPI_TABLE_RSDP) { | 401 | if (table_type == ACPI_TABLE_RSDP) { |
| 433 | /* RSD PTR is the only "table" without a header */ | 402 | /* RSD PTR is the only "table" without a header */ |
| 434 | 403 | ||
| 435 | table_length = sizeof (struct rsdp_descriptor); | 404 | table_length = sizeof(struct rsdp_descriptor); |
| 436 | } | 405 | } else { |
| 437 | else { | ||
| 438 | table_length = (acpi_size) tbl_ptr->length; | 406 | table_length = (acpi_size) tbl_ptr->length; |
| 439 | } | 407 | } |
| 440 | 408 | ||
| 441 | /* Validate/Allocate/Clear caller buffer */ | 409 | /* Validate/Allocate/Clear caller buffer */ |
| 442 | 410 | ||
| 443 | status = acpi_ut_initialize_buffer (ret_buffer, table_length); | 411 | status = acpi_ut_initialize_buffer(ret_buffer, table_length); |
| 444 | if (ACPI_FAILURE (status)) { | 412 | if (ACPI_FAILURE(status)) { |
| 445 | return_ACPI_STATUS (status); | 413 | return_ACPI_STATUS(status); |
| 446 | } | 414 | } |
| 447 | 415 | ||
| 448 | /* Copy the table to the buffer */ | 416 | /* Copy the table to the buffer */ |
| 449 | 417 | ||
| 450 | ACPI_MEMCPY ((void *) ret_buffer->pointer, (void *) tbl_ptr, table_length); | 418 | ACPI_MEMCPY((void *)ret_buffer->pointer, (void *)tbl_ptr, table_length); |
| 451 | return_ACPI_STATUS (AE_OK); | 419 | return_ACPI_STATUS(AE_OK); |
| 452 | } | 420 | } |
| 453 | EXPORT_SYMBOL(acpi_get_table); | ||
| 454 | 421 | ||
| 422 | EXPORT_SYMBOL(acpi_get_table); | ||
