Bladeren bron

ACPICA: Fix a regression for deletion of Alias() objects.

Fixes a regression introduced by commit e23d9b829754 (ACPICA:
Namespace: Properly null terminate objects detached from a namespace
node)

In the case of Alias namespace nodes, the node simply points to the aliased
node via the Object field; thus we cannot assume that the object is an
operand object.

Fixes: e23d9b829754 (ACPICA: Namespace: Properly null terminate objects detached from a namespace node)
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Bob Moore 11 jaren geleden
bovenliggende
commit
7817e26523
1 gewijzigde bestanden met toevoegingen van 9 en 10 verwijderingen
  1. 9 10
      drivers/acpi/acpica/nsobject.c

+ 9 - 10
drivers/acpi/acpica/nsobject.c

@@ -237,17 +237,16 @@ void acpi_ns_detach_object(struct acpi_namespace_node *node)
 		    (node->object->common.type != ACPI_TYPE_LOCAL_DATA)) {
 			node->object = node->object->common.next_object;
 		}
-	}
 
-	/*
-	 * Detach the object from any data objects (which are still held by
-	 * the namespace node)
-	 */
-
-	if (obj_desc->common.next_object &&
-	    ((obj_desc->common.next_object)->common.type ==
-	     ACPI_TYPE_LOCAL_DATA)) {
-		obj_desc->common.next_object = NULL;
+		/*
+		 * Detach the object from any data objects (which are still held by
+		 * the namespace node)
+		 */
+		if (obj_desc->common.next_object &&
+		    ((obj_desc->common.next_object)->common.type ==
+		     ACPI_TYPE_LOCAL_DATA)) {
+			obj_desc->common.next_object = NULL;
+		}
 	}
 
 	/* Reset the node type to untyped */