summaryrefslogtreecommitdiffstats
path: root/drivers/acpi/namespace/nssearch.c
diff options
context:
space:
mode:
authorBob Moore2007-02-02 17:48:21 +0100
committerLen Brown2007-02-03 03:14:27 +0100
commitd1fdda83f7c567f376ddd4305833de09f7919ca9 (patch)
tree059dccd5c38ad96a8f31bf8b45409460a02bd41f /drivers/acpi/namespace/nssearch.c
parentACPICA: Eliminate control method 2-pass parse/execute. (diff)
downloadkernel-qcow2-linux-d1fdda83f7c567f376ddd4305833de09f7919ca9.tar.gz
kernel-qcow2-linux-d1fdda83f7c567f376ddd4305833de09f7919ca9.tar.xz
kernel-qcow2-linux-d1fdda83f7c567f376ddd4305833de09f7919ca9.zip
ACPICA: Fix race condition with AcpiWalkNamespace.
Fixed a problem with a possible race condition between threads executing AcpiWalkNamespace and the AML interpreter. This condition was removed by modifying AcpiWalkNamespace to (by default) ignore all temporary namespace entries created during any concurrent control method execution Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/namespace/nssearch.c')
-rw-r--r--drivers/acpi/namespace/nssearch.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/acpi/namespace/nssearch.c b/drivers/acpi/namespace/nssearch.c
index 566f0a4aff93..d261c9bcd450 100644
--- a/drivers/acpi/namespace/nssearch.c
+++ b/drivers/acpi/namespace/nssearch.c
@@ -402,6 +402,10 @@ acpi_ns_search_and_enter(u32 target_name,
}
#endif
+ if (flags & ACPI_NS_TEMPORARY) {
+ new_node->flags |= ANOBJ_TEMPORARY;
+ }
+
/* Install the new object into the parent's list of children */
acpi_ns_install_node(walk_state, node, new_node, type);