Try to delete nodes from namespace only if method really added them Signed-off-by: Alexey Starikovskiy <astarikovskiy@xxxxxxx> --- source/components/dispatcher/dsmethod.c | 5 ++++- source/components/namespace/nsalloc.c | 4 ++++ source/include/acobject.h | 1 + 3 files changed, 9 insertions(+), 1 deletions(-) diff --git a/source/components/dispatcher/dsmethod.c b/source/components/dispatcher/dsmethod.c index 969c9ca..fe7a9a8 100644 --- a/source/components/dispatcher/dsmethod.c +++ b/source/components/dispatcher/dsmethod.c @@ -700,7 +700,10 @@ AcpiDsTerminateControlMethod ( */ if (!(MethodDesc->Method.Flags & AOPOBJ_MODULE_LEVEL)) { - AcpiNsDeleteNamespaceByOwner (MethodDesc->Method.OwnerId); + if (MethodDesc->Method.UsesNamespace) + { + AcpiNsDeleteNamespaceByOwner (MethodDesc->Method.OwnerId); + } } } diff --git a/source/components/namespace/nsalloc.c b/source/components/namespace/nsalloc.c index aadafbf..16bcdd3 100644 --- a/source/components/namespace/nsalloc.c +++ b/source/components/namespace/nsalloc.c @@ -343,6 +343,10 @@ AcpiNsInstallNode ( if (WalkState) { OwnerId = WalkState->OwnerId; + if (WalkState->MethodDesc) + { + WalkState->MethodDesc->Method.UsesNamespace = 1; + } } /* Link the new entry into the parent and existing children */ diff --git a/source/include/acobject.h b/source/include/acobject.h index f86f839..502132a 100644 --- a/source/include/acobject.h +++ b/source/include/acobject.h @@ -296,6 +296,7 @@ typedef struct acpi_object_method UINT32 AmlLength; UINT8 ThreadCount; + UINT8 UsesNamespace; ACPI_OWNER_ID OwnerId; } ACPI_OBJECT_METHOD; -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html