ACPI: property: Fix error handling in acpi_init_properties()
Changes
1 files changed · +4 −3
| File | Status | Add | Del | Content |
|---|---|---|---|---|
| drivers/acpi/property.c | modified | +4 | −3 | View file |
drivers/acpi/property.c
View filediff --git a/drivers/acpi/property.c b/drivers/acpi/property.c
index d26f630..f649ae9 100644
--- a/drivers/acpi/property.c
+++ b/drivers/acpi/property.c
@@ -566,11 +566,12 @@ void acpi_init_properties(struct acpi_device *adev)
&adev->data, acpi_fwnode_handle(adev)))
adev->data.pointer = buf.pointer;
- if (!adev->data.pointer ||
- !acpi_tie_nondev_subnodes(&adev->data)) {
- acpi_untie_nondev_subnodes(&adev->data);
+ if (!adev->data.pointer) {
acpi_handle_debug(adev->handle, "Invalid _DSD data, skipping\n");
ACPI_FREE(buf.pointer);
+ } else {
+ if (!acpi_tie_nondev_subnodes(&adev->data))
+ acpi_untie_nondev_subnodes(&adev->data);
}
out: