diff options
author | Irina Tirdea <irina.tirdea@intel.com> | 2016-03-13 01:33:30 +0100 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2016-03-17 03:06:38 +0100 |
commit | bf4703fdd166fffd5b2e4c42d2ebbf708b94748e (patch) | |
tree | 41d4306b747a7b61695536f91bfa5a0a37110d9a | |
parent | device property: fwnode->secondary may contain ERR_PTR(-ENODEV) (diff) | |
download | linux-bf4703fdd166fffd5b2e4c42d2ebbf708b94748e.tar.xz linux-bf4703fdd166fffd5b2e4c42d2ebbf708b94748e.zip |
ACPI / property: fix data node parsing in acpi_get_next_subnode()
When an ACPI node has both ACPI device nodes and ACPI data nodes,
acpi_get_next_subnode() will return the ACPI data nodes of its last
parsed child.
To avoid that, make acpi_get_next_subnode() go back to the original
ACPI device object when all of the device node children of it have
been found already.
Signed-off-by: Irina Tirdea <irina.tirdea@intel.com>
[ rjw: Changelog ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-rw-r--r-- | drivers/acpi/property.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/acpi/property.c b/drivers/acpi/property.c index 2aee41655ce9..f2fd3fee588a 100644 --- a/drivers/acpi/property.c +++ b/drivers/acpi/property.c @@ -816,6 +816,7 @@ struct fwnode_handle *acpi_get_next_subnode(struct device *dev, next = adev->node.next; if (next == head) { child = NULL; + adev = ACPI_COMPANION(dev); goto nondev; } adev = list_entry(next, struct acpi_device, node); |