Reserved method has too many arguments (_OSC requires 4)
by Thomas Renninger
Hi,
I have a laptop freezing early, acpi=off and noapic helps.
I wonder whether this could have to do with the broken _OSC method.
I cannot access the machine myself, eventually I can get more info
if needed, but the machine is freezing really early (after ACPI
initialization, somewhere around bringing up CPUs (possibly when
starting PCI init already?).
This is not the first time I see this message.
It would be great to get (from include/linux/kernel.h):
#define FW_BUG "[Firmware Bug]: "
#define FW_WARN "[Firmware Warn]: "
#define FW_INFO "[Firmware Info]: "
marked messages into ACPICA and blame the guys who are responsible
for that.
My other concern/question is: what exactly happens in such a case?
Will _OSC get invoked at all?
If yes, what will be the last argument, zero, -1?
Hmm, I doubt it has to do with the freeze, but it would still be
great if someone knowing these parts could comment what people
with such a BIOS could expect to happen.
Thanks,
Thomas
Method (_OSC, 5, NotSerialized)
{
Store (Arg3, Local0)
Multiply (Local0, 0x04, Local1)
Name (BUF1, Buffer (Local1) {})
Store (Arg4, BUF1)
Store (Zero, Local1)
Store (Zero, Local2)
While (Local0)
{
Multiply (Local1, 0x04, Local2)
CreateDWordField (BUF1, Local2, CAPB)
If (Arg2)
{
If (LEqual (Local1, Zero))
{
And (CAPB, 0xFFFFFFFC)
}
}
Increment (Local1)
Decrement (Local0)
}
Return (BUF1)
}
10 years
FW: ACPICA version 20110112 released
by Moore, Robert
12 January 2011. Summary of changes for version 20110112:
This release is available at www.acpica.org/downloads
1) ACPI CA Core Subsystem:
Fixed a race condition between method execution and namespace walks that can possibly cause a fault. The 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 a missing namespace lock in the delete_namespace_subtree function. dana.myers(a)oracle.com
Fixed several issues and a possible fault with the 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 other running threads
(and possibly causing a fault.)
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 confusion between the two.
Lin Ming, Bob Moore. Reported by dana.myers(a)oracle.com.
Debugger: Now lock the namespace for duration of a namespace dump. Prevents issues if the namespace is changing dynamically underneath the debugger. Especially affects temporary namespace nodes, since the debugger displays these also.
Updated the ordering of include files. 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. Affects the ACPI-related tools and utilities.
Updated all ACPICA copyrights and signons to 2011. Added the 2011 copyright to all module headers and signons, including the Linux header. This affects virtually every file in the ACPICA core subsystem, iASL compiler, and all utilities.
Added project files for MS Visual Studio 2008 (VC++ 9.0). The original project files for VC++ 6.0 are now obsolete. New project files can be found under acpica/generate/msvc9. See acpica/generate/msvc9/readme.txt for details.
Example Code and Data Size: These are the sizes for the OS-independent acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug version of the code includes the debug output trace mechanism and has a much larger code and data size.
Previous Release (VC 6.0):
Non-Debug Version: 89.8K Code, 18.9K Data, 108.7K Total
Debug Version: 166.6K Code, 52.1K Data, 218.7K Total
Current Release (VC 9.0):
Non-Debug Version: 89.7K Code, 23.7K Data, 113.4K Total
Debug Version: 163.9K Code, 67.5K Data, 231.4K Total
2) iASL Compiler/Disassembler and Tools:
iASL: Added generic data types to the Data Table compiler. Add "generic" data types such as UINT32, String, Unicode, etc., to simplify the generation of platform-defined tables such as UEFI. Lin Ming.
iASL: Added listing support for the Data Table Compiler. Adds listing support (-l) to display actual binary output for each line of input code.
10 years, 1 month