On Friday, 19 of December 2008, Len Brown wrote: > From: Len Brown <len.brown@xxxxxxxxx> > Organization: Intel Open Source Technology Center > > ACPI 2.0 defined two new methods in the suspend/resume sequence, > _GTS (Going to Sleep) and _BFS (Back from Sleep) > > They are optional methods, but if the BIOS supplies them, > the OS is supposed to evaluate them immediately before > writing the register to sleep, and immediately after waking up -- > a time when interrupts are disabled. > > The spec says that they must be self-contained > methods, not calling any other methods, perhaps > because that they are run under unique conditions? > > These methodds are evaluated in Linux by > acpi_evaluate_object(), which always kmalloc's > a return structure to conserve stack space. > But kmalloc with interrupts off is problematic -- > do we really want to insist on GFP_ATOMIC here? Well, I think we should. Alternatively, we can keep a preallocated buffer for this purpose. > Now, several years after ACPI 2.0 was released, > we have yet to observe a single implementation of > _GTS/_BFS in the field -- suggesting that they will > never actually be deployed. > > So lets keep Linux simple by removing this > theoretical support for _GTS/_BFS, the only > AML methods that mandated being evaluated > with interrupts disabled. I'm not sure if I agree with this approach. My opinion is that we should be able to execute AML code with interrupts disabled and there should be means to do that. The entire irqrouter_resume() thing requires us to evaluate AML with interrupts disabled and in that particular case it also really _makes_ _sense_. So, IMO dropping _GTS/_BFS doesn't really buy us anything. Thanks, Rafael -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html