diff options
Diffstat (limited to 'drivers/acpi/resources/rscalc.c')
-rw-r--r-- | drivers/acpi/resources/rscalc.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/acpi/resources/rscalc.c b/drivers/acpi/resources/rscalc.c index eca7439ee9da..c2c4d9079c6c 100644 --- a/drivers/acpi/resources/rscalc.c +++ b/drivers/acpi/resources/rscalc.c | |||
@@ -300,7 +300,7 @@ acpi_rs_get_aml_length(struct acpi_resource * resource, acpi_size * size_needed) | |||
300 | /* Point to the next object */ | 300 | /* Point to the next object */ |
301 | 301 | ||
302 | resource = | 302 | resource = |
303 | ACPI_PTR_ADD(struct acpi_resource, resource, | 303 | ACPI_ADD_PTR(struct acpi_resource, resource, |
304 | resource->length); | 304 | resource->length); |
305 | } | 305 | } |
306 | 306 | ||
@@ -374,8 +374,7 @@ acpi_rs_get_list_length(u8 * aml_buffer, | |||
374 | * Get the number of bits set in the 16-bit IRQ mask | 374 | * Get the number of bits set in the 16-bit IRQ mask |
375 | */ | 375 | */ |
376 | ACPI_MOVE_16_TO_16(&temp16, buffer); | 376 | ACPI_MOVE_16_TO_16(&temp16, buffer); |
377 | extra_struct_bytes = | 377 | extra_struct_bytes = acpi_rs_count_set_bits(temp16); |
378 | acpi_rs_count_set_bits(temp16) * sizeof(u32); | ||
379 | break; | 378 | break; |
380 | 379 | ||
381 | case ACPI_RESOURCE_NAME_DMA: | 380 | case ACPI_RESOURCE_NAME_DMA: |
@@ -383,8 +382,7 @@ acpi_rs_get_list_length(u8 * aml_buffer, | |||
383 | * DMA Resource: | 382 | * DMA Resource: |
384 | * Get the number of bits set in the 8-bit DMA mask | 383 | * Get the number of bits set in the 8-bit DMA mask |
385 | */ | 384 | */ |
386 | extra_struct_bytes = | 385 | extra_struct_bytes = acpi_rs_count_set_bits(*buffer); |
387 | acpi_rs_count_set_bits(*buffer) * sizeof(u32); | ||
388 | break; | 386 | break; |
389 | 387 | ||
390 | case ACPI_RESOURCE_NAME_VENDOR_SMALL: | 388 | case ACPI_RESOURCE_NAME_VENDOR_SMALL: |
@@ -399,9 +397,9 @@ acpi_rs_get_list_length(u8 * aml_buffer, | |||
399 | 397 | ||
400 | case ACPI_RESOURCE_NAME_END_TAG: | 398 | case ACPI_RESOURCE_NAME_END_TAG: |
401 | /* | 399 | /* |
402 | * End Tag: This is the normal exit | 400 | * End Tag: This is the normal exit, add size of end_tag |
403 | */ | 401 | */ |
404 | *size_needed = buffer_size; | 402 | *size_needed = buffer_size + ACPI_RS_SIZE_MIN; |
405 | return_ACPI_STATUS(AE_OK); | 403 | return_ACPI_STATUS(AE_OK); |
406 | 404 | ||
407 | case ACPI_RESOURCE_NAME_VENDOR_LARGE: | 405 | case ACPI_RESOURCE_NAME_VENDOR_LARGE: |
@@ -466,7 +464,7 @@ acpi_rs_get_list_length(u8 * aml_buffer, | |||
466 | 464 | ||
467 | temp16 = (u16) (acpi_gbl_resource_struct_sizes[resource_index] + | 465 | temp16 = (u16) (acpi_gbl_resource_struct_sizes[resource_index] + |
468 | extra_struct_bytes); | 466 | extra_struct_bytes); |
469 | buffer_size += (u32) ACPI_ALIGN_RESOURCE_SIZE(temp16); | 467 | buffer_size += (u32) ACPI_ROUND_UP_TO_NATIVE_WORD(temp16); |
470 | 468 | ||
471 | /* | 469 | /* |
472 | * Point to the next resource within the stream | 470 | * Point to the next resource within the stream |