Procházet zdrojové kódy

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>
Irina Tirdea před 9 roky
rodič
revize
bf4703fdd1
1 změnil soubory, kde provedl 1 přidání a 0 odebrání
  1. 1 0
      drivers/acpi/property.c

+ 1 - 0
drivers/acpi/property.c

@@ -816,6 +816,7 @@ struct fwnode_handle *acpi_get_next_subnode(struct device *dev,
 			next = adev->node.next;
 			next = adev->node.next;
 			if (next == head) {
 			if (next == head) {
 				child = NULL;
 				child = NULL;
+				adev = ACPI_COMPANION(dev);
 				goto nondev;
 				goto nondev;
 			}
 			}
 			adev = list_entry(next, struct acpi_device, node);
 			adev = list_entry(next, struct acpi_device, node);