diff options
Diffstat (limited to 'drivers/acpi/property.c')
-rw-r--r-- | drivers/acpi/property.c | 7 |
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: |