diff options
author | Bob Moore <robert.moore@intel.com> | 2007-02-02 11:48:21 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2007-02-02 21:14:27 -0500 |
commit | d1fdda83f7c567f376ddd4305833de09f7919ca9 (patch) | |
tree | 059dccd5c38ad96a8f31bf8b45409460a02bd41f /drivers/acpi/namespace/nssearch.c | |
parent | 9bc75cff4919f9d947982d805aed89582a20d04d (diff) |
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.c | 4 |
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, | |||
402 | } | 402 | } |
403 | #endif | 403 | #endif |
404 | 404 | ||
405 | if (flags & ACPI_NS_TEMPORARY) { | ||
406 | new_node->flags |= ANOBJ_TEMPORARY; | ||
407 | } | ||
408 | |||
405 | /* Install the new object into the parent's list of children */ | 409 | /* Install the new object into the parent's list of children */ |
406 | 410 | ||
407 | acpi_ns_install_node(walk_state, node, new_node, type); | 411 | acpi_ns_install_node(walk_state, node, new_node, type); |