]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ACPICA: Add alias node support in namespace handling
authorikaros <void0red@gmail.com>
Wed, 27 May 2026 17:53:58 +0000 (19:53 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 27 May 2026 18:18:44 +0000 (20:18 +0200)
 - Mark nodes as alias in ld_namespace2_begin() function.
 - Skip teardown for alias nodes in acpi_ns_detach_object() function.
 - Define ANOBJ_IS_ALIAS flag in aclocal.h.

Link: https://github.com/acpica/acpica/commit/cfcc46c4f717
Signed-off-by: ikaros <void0red@gmail.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Link: https://patch.msgid.link/14020896.uLZWGnKmhe@rafael.j.wysocki
drivers/acpi/acpica/aclocal.h
drivers/acpi/acpica/nsobject.c

index f98640086f4ef3cbf237b81dba614792383028b4..cbf09fb08d354f343eecb6682cafc47a7d0b36ce 100644 (file)
@@ -169,6 +169,7 @@ struct acpi_namespace_node {
 #define ANOBJ_IS_EXTERNAL               0x08   /* iASL only: This object created via External() */
 #define ANOBJ_METHOD_NO_RETVAL          0x10   /* iASL only: Method has no return value */
 #define ANOBJ_METHOD_SOME_NO_RETVAL     0x20   /* iASL only: Method has at least one return value */
+#define ANOBJ_IS_ALIAS                  0x40   /* iASL only: Node is an alias to another node */
 #define ANOBJ_IS_REFERENCED             0x80   /* iASL only: Object was referenced */
 
 /* Internal ACPI table management - master table list */
index 79d86da1c8924a971bacf928008634c8aa3224ca..a4ccacecca53d8ccc4ac2a2a52a24deb0407643b 100644 (file)
@@ -173,6 +173,12 @@ void acpi_ns_detach_object(struct acpi_namespace_node *node)
 
        obj_desc = node->object;
 
+       /* Alias nodes point directly to other namespace nodes; skip teardown */
+       if (node->flags & ANOBJ_IS_ALIAS) {
+               node->object = NULL;
+               return_VOID;
+       }
+
        if (!obj_desc || (obj_desc->common.type == ACPI_TYPE_LOCAL_DATA)) {
                return_VOID;
        }