diff options
author | Bob Moore <robert.moore@intel.com> | 2008-04-10 15:06:44 (GMT) |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2008-04-22 23:09:25 (GMT) |
commit | 66d3ca9ea28e1b3d591083772fd797b9b46410b8 (patch) | |
tree | 71d34c39cd081e4fe46e024023d3146c8fc9fff3 /drivers | |
parent | d8846574ed4a81be319bf68728f9cca9af595afd (diff) | |
download | linux-fsl-qoriq-66d3ca9ea28e1b3d591083772fd797b9b46410b8.tar.xz |
ACPICA: Fixes for size of StartDependent resource descriptor
Fixed a couple of size calculation issues with the variable-length
Start Dependent resource descriptor.
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/acpi/resources/rscalc.c | 11 | ||||
-rw-r--r-- | drivers/acpi/resources/rsio.c | 2 |
2 files changed, 12 insertions, 1 deletions
diff --git a/drivers/acpi/resources/rscalc.c b/drivers/acpi/resources/rscalc.c index db0a835..d801823 100644 --- a/drivers/acpi/resources/rscalc.c +++ b/drivers/acpi/resources/rscalc.c @@ -213,11 +213,22 @@ acpi_rs_get_aml_length(struct acpi_resource * resource, acpi_size * size_needed) switch (resource->type) { case ACPI_RESOURCE_TYPE_IRQ: + /* Length can be 3 or 2 */ + if (resource->data.irq.descriptor_length == 2) { total_size--; } break; + case ACPI_RESOURCE_TYPE_START_DEPENDENT: + + /* Length can be 1 or 0 */ + + if (resource->data.irq.descriptor_length == 0) { + total_size--; + } + break; + case ACPI_RESOURCE_TYPE_VENDOR: /* * Vendor Defined Resource: diff --git a/drivers/acpi/resources/rsio.c b/drivers/acpi/resources/rsio.c index 50f3acd..610d7c2 100644 --- a/drivers/acpi/resources/rsio.c +++ b/drivers/acpi/resources/rsio.c @@ -268,7 +268,7 @@ struct acpi_rsconvert_info acpi_rs_set_start_dpf[10] = { /* Reset length to 1 byte (descriptor with flags byte) */ - {ACPI_RSC_LENGTH, 0, 0, sizeof(struct aml_resource_irq)}, + {ACPI_RSC_LENGTH, 0, 0, sizeof(struct aml_resource_start_dependent)}, /* * All done if flags byte is necessary -- if either priority value |