summaryrefslogtreecommitdiffstats
path: root/drivers/acpi/property.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi/property.c')
-rw-r--r--drivers/acpi/property.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/acpi/property.c b/drivers/acpi/property.c
index d26f630f2a7c..f649ae9645c9 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: