ACPI / property: fix data node parsing in acpi_get_next_subnode()
authorIrina Tirdea <irina.tirdea@intel.com>
Sun, 13 Mar 2016 00:33:30 +0000 (02:33 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 17 Mar 2016 02:06:38 +0000 (03:06 +0100)
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>
drivers/acpi/property.c

index 2aee41655ce9223a264a56e11d439ddccc365632..f2fd3fee588a8233a80bdc5da3549fea5703b9f8 100644 (file)
@@ -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);