Re: PCI PM: Restore standard config registers of all devices early

Benjamin Herrenschmidt
2009-02-03T00:12:18Z

On Mon, 2009-02-02 at 23:56 +0100, Rafael J. Wysocki wrote:
> * The ACPI_MTX_INTERPRETER mutex needs to be acquired, but we know we won't
> need that mutex with interrupts off, so presumably we can work around this.

Or just make the mutex code not care when in the late suspend/early
resume. I think that's the right approach and involves no change to ACPI
itself.

> * Memory allocations with GFP_KERNEL are made, which is even worse, because
> we really shouldn't do that during suspend _at_ _all_, even during the regular
> ->suspend() with interrupts on, because there's not guarantee that swap will
> will be available at that time. So, for the sake of correctness, we should
> get rid of the GFP_KERNEL from the ACPI code paths executed during
> suspend-resume anyway.

Well, as I said, this is a problem with more than just ACPI and again, I
don't think the fix is to be done in ACPI itself. The buddy and slab
should basically stick NOIO or ATOMIC to any allocation done after we
started suspending the system.

Cheers,
Ben.