The revision number in the FADT has been found to be completely
unreliable and cannot be trusted. Only the table length can be
used to infer the actual version.
This change updates the ACPICA core and the disassembler so that
both no longer even look at the FADT version and instead depend
upon the FADT length.
This optimization will simply ignore GPE registers that contain no
enabled GPEs - there is no need to read the register.
ACPICA bugzilla 884. Lin Ming. Suggestion from Joe Liu.
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.
Limit the number of arguments sent to a control method to
the number of required arguments - to avoid a warning
message from the argument checking code.
The ACPICA headers should appear before any compiler-specific
headers (stdio.h, etc.) so that acenv.h can set any
necessary compiler-specific defines, etc.
Fixes a race condition between method execution and namespace walks
that can possibly fault. Problem was apparently introduced in version
20100528 as a result of a performance optimization that reduces the
number of namespace walks upon method exit by using the
delete_namespace_subtree function instead of the delete_namespace_by_owner
function used previously. Bug is in the delete_namespace_subtree function.
dana.myers@oracle.com
Repairs seek off end-of-file case if a syntax error causes the
parser to reach EOF.
Previously:
[*** iASL: Read error on source code temp file gr.src ***]
Now, something like this:
gr.asl(6) : Error 4096 - parse error and premature End-Of-File
ACPICA bugzilla 891.
Shows example of ACPICA configuration for a minimal namespace
dump utility. Uses table and namespace managers, but no AML
interpreter.
Does not add any functionality over AcpiExec. It is a subset
of AcpiExec. The purpose is to show how to partition and
configure ACPICA.
Contains the complete overhaul of the GPE support code including
removal of _PRW execution, improved handling of wake GPEs, new
external interfaces, and implicit notify support. ACPICA BZ 858,
870,877. Matthew Garrett, Lin Ming, Bob Moore, Rafael Wysocki.
Note: This support is committed as a single patch here because
of multiple patch backporting from Linux and the resulting
interdependency issues.
See the ACPICA reference for full documentation.
During load phase (table load or method execution), the scope operator
should not enter the target into the namespace. Instead, it should
open a new scope at the target location. Linux BZ 19462.
These strings are "bus-specific" per the ACPI specification, therefore
any characters are acceptable. The only checks that can be performed
are for a null string and perhaps for a leading asterisk.
Fixes a problem where some resource descriptors are created with
most fields set to zero, because the intent is that these
descriptors will be updated at runtime via a BufferField.
These "null" resource desriptors are now allowed iff the desrcriptor
is created with a resource tag -- meaning that the descriptor
can be referenced by a BufferField. ACPICA BZ 873.
Now that the nsrepair code automatically repairs _HID-related
strings, this type of code is no longer needed in Execute_HID,
Execute_CID, and Execute_UID. ACPICA BZ 878.