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

Rafael J. Wysocki
2009-02-02T21:40:53Z

On Monday 02 February 2009, Linus Torvalds wrote:
>
> On Mon, 2 Feb 2009, Linus Torvalds wrote:
> >
> > I suspect that we could possibly make ACPI happy by actually leaving
> > interrupts "enabled" in the suspend-late (and early-resume) paths, but
> > with all hardware interrupts actually turned off. But that's really just a
> > "let's fool people by turning off interrupts a different way" thing - it
> > in no way really changes any fundamental issues.
>
> Btw, I do think that we can make ACPI happy regardless.
>
> We quite commonly call into ACPI during the early boot sequence, when
> interrupts are disabled for all the same reasons. We don't get the
> "might_sleep()" warnings, simply because we have these kinds of checks:
>
> ..
> if ((!in_atomic() && !irqs_disabled()) ||
> system_state != SYSTEM_RUNNING || oops_in_progress)
> return;
> ..
>
> ie we know that "system_state != SYSTEM_RUNNING" is a special case where
> things are allowed to do things that they aren't normally allowed to do.

Yes, which is why I thought it might be a good idea to make the AML interpreter
allow is to execute AML with interrupts off, so that we can put devices into
low power states and/or put them into D0 with interrupts off.

Then, we'll be able to make ACPI happy (up to some strange ordering
expectations of some insane BIOSes maybe) and fix the interrupts issue at
the same time.

The idea would be to have a special code path(s) where AML can be executed
with interrupts off and a couple of special entry points into the AML
interpreter for this purpose.

Thanks,
Rafael