diff options
author | Robert Moore <Robert.Moore@intel.com> | 2011-01-11 10:25:15 -0800 |
---|---|---|
committer | Robert Moore <Robert.Moore@intel.com> | 2011-01-11 10:25:15 -0800 |
commit | 4110b9bdc9cb38cff4a824d445bb057e363a342e (patch) | |
tree | ba4044b46018bad5fd072450338b7c6a0f332069 /source/components/executer/exdump.c | |
parent | a39fa5a0a6dbaee2bc9e8d9aee2fb4833b3cefc9 (diff) | |
download | acpica-4110b9bdc9cb38cff4a824d445bb057e363a342e.tar.gz |
Fix issues/fault with automatic "serialized" method support.
History: This support changes a method to "serialized" on the fly if the
method generates an AE_ALREADY_EXISTS error, indicating the possibility
that it cannot handle reentrancy.
This fix repairs a couple of issues seen in the field, especially on
machines with many cores.
1) Delete method children only upon the exit of the last thread, so
as to not delete objects out from under running threads.
2) Set the "serialized" bit for the method only upon the exit of the
last thread, so as to not cause deadlock when running threads attempt
to exit.
3) Cleanup the use of the AML "MethodFlags" and internal method flags
so that there is no longer any confustion between the two.
Lin Ming, Bob Moore. Reported by dana.myers@oracle.com.
Diffstat (limited to 'source/components/executer/exdump.c')
-rw-r--r-- | source/components/executer/exdump.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/source/components/executer/exdump.c b/source/components/executer/exdump.c index d189e4921..44f7d3ba5 100644 --- a/source/components/executer/exdump.c +++ b/source/components/executer/exdump.c @@ -216,7 +216,7 @@ static ACPI_EXDUMP_INFO AcpiExDumpEvent[2] = static ACPI_EXDUMP_INFO AcpiExDumpMethod[9] = { {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE (AcpiExDumpMethod), NULL}, - {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Method.MethodFlags), "Method Flags"}, + {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Method.InfoFlags), "Info Flags"}, {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Method.ParamCount), "Parameter Count"}, {ACPI_EXD_UINT8, ACPI_EXD_OFFSET (Method.SyncLevel), "Sync Level"}, {ACPI_EXD_POINTER, ACPI_EXD_OFFSET (Method.Mutex), "Mutex"}, |