diff options
author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2017-04-14 07:11:43 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2017-04-14 07:11:43 -0400 |
commit | f83e13f94e14d27c9610f917e40e23a6c2bbeaf0 (patch) | |
tree | 3af330170334173843bc34ed78111e5ca550eb62 | |
parent | f406270bf73d71ea7b35ee3f7a08a44f6594c9b1 (diff) | |
parent | 1315f01632da417f1f27074bc6631df8eaf223bb (diff) |
Merge branches 'acpi-scan-fixes' and 'acpica-fixes'
* acpi-scan-fixes:
ACPI / scan: Set the visited flag for all enumerated devices
* acpica-fixes:
Revert "ACPICA: Resources: Not a valid resource if buffer length too long"
-rw-r--r-- | drivers/acpi/acpica/utresrc.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/drivers/acpi/acpica/utresrc.c b/drivers/acpi/acpica/utresrc.c index c86bae7b1d0f..ff096d9755b9 100644 --- a/drivers/acpi/acpica/utresrc.c +++ b/drivers/acpi/acpica/utresrc.c | |||
@@ -421,10 +421,8 @@ acpi_ut_walk_aml_resources(struct acpi_walk_state *walk_state, | |||
421 | 421 | ||
422 | ACPI_FUNCTION_TRACE(ut_walk_aml_resources); | 422 | ACPI_FUNCTION_TRACE(ut_walk_aml_resources); |
423 | 423 | ||
424 | /* | 424 | /* The absolute minimum resource template is one end_tag descriptor */ |
425 | * The absolute minimum resource template is one end_tag descriptor. | 425 | |
426 | * However, we will treat a lone end_tag as just a simple buffer. | ||
427 | */ | ||
428 | if (aml_length < sizeof(struct aml_resource_end_tag)) { | 426 | if (aml_length < sizeof(struct aml_resource_end_tag)) { |
429 | return_ACPI_STATUS(AE_AML_NO_RESOURCE_END_TAG); | 427 | return_ACPI_STATUS(AE_AML_NO_RESOURCE_END_TAG); |
430 | } | 428 | } |
@@ -456,8 +454,9 @@ acpi_ut_walk_aml_resources(struct acpi_walk_state *walk_state, | |||
456 | /* Invoke the user function */ | 454 | /* Invoke the user function */ |
457 | 455 | ||
458 | if (user_function) { | 456 | if (user_function) { |
459 | status = user_function(aml, length, offset, | 457 | status = |
460 | resource_index, context); | 458 | user_function(aml, length, offset, resource_index, |
459 | context); | ||
461 | if (ACPI_FAILURE(status)) { | 460 | if (ACPI_FAILURE(status)) { |
462 | return_ACPI_STATUS(status); | 461 | return_ACPI_STATUS(status); |
463 | } | 462 | } |
@@ -481,12 +480,6 @@ acpi_ut_walk_aml_resources(struct acpi_walk_state *walk_state, | |||
481 | *context = aml; | 480 | *context = aml; |
482 | } | 481 | } |
483 | 482 | ||
484 | /* Check if buffer is defined to be longer than the resource length */ | ||
485 | |||
486 | if (aml_length > (offset + length)) { | ||
487 | return_ACPI_STATUS(AE_AML_NO_RESOURCE_END_TAG); | ||
488 | } | ||
489 | |||
490 | /* Normal exit */ | 483 | /* Normal exit */ |
491 | 484 | ||
492 | return_ACPI_STATUS(AE_OK); | 485 | return_ACPI_STATUS(AE_OK); |