Perhaps iASL can automatically (with a warning or remark) mark a control method as serialized if the method creates named objects. This could prevent a runtime error since the method is clearly non-reentrant. Suggestion from Thomas Renninger.
Prototype indicates that simply warning and marking serialized for any named object creation is insufficient and will lead to unneccessary warnings. If the method has no blocking operators, it will indeed run to completion and a 2nd thread can never re-enter. The real problem is a control method that both: 1) Creates named objects, AND 2) Blocks in some manner (such as as a Sleep.) This is a bit trickier, but still may be possible.
Also suggested by BIOS people. A remark might be appropriate here, and just go ahead and mark it serialized if it creates named objects. Serializing a method will cause a separate semaphore/mutex to be created for that method, however.
What has been decided: 1) In this case, issue a remark that the method should be declared serialized. 2) Do NOT automatically mark the method serialized. Compiler should not be changing the code like this.
Implemented in ACPICA version 20130517