_PLD is defined as returning a package of buffers, but many implementations simply return a buffer. Fix this up. (Original patch by Bob Moore <robert.moore@xxxxxxxxx>) Signed-off-by: Matthew Garrett <mjg@xxxxxxxxxx> --- drivers/acpi/acpica/nsrepair.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/acpi/acpica/nsrepair.c b/drivers/acpi/acpica/nsrepair.c index 9c35d20..6217cfd 100644 --- a/drivers/acpi/acpica/nsrepair.c +++ b/drivers/acpi/acpica/nsrepair.c @@ -151,9 +151,18 @@ acpi_ns_repair_object(struct acpi_predefined_data *data, } } if (expected_btypes & ACPI_RTYPE_PACKAGE) { - status = acpi_ns_convert_to_package(return_object, &new_object); - if (ACPI_SUCCESS(status)) { - goto object_repaired; + if (return_object->common.type == ACPI_TYPE_BUFFER) { + status = acpi_ns_repair_package_list(data, &return_object); + if (ACPI_SUCCESS(status)) { + *return_object_ptr = return_object; + data->flags |= ACPI_OBJECT_REPAIRED; + return (AE_OK); + } + } else { + status = acpi_ns_convert_to_package(return_object, &new_object); + if (ACPI_SUCCESS(status)) { + goto object_repaired; + } } } -- 1.7.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html