Re: Reworking suspend-resume sequence (was: Re: PCI PM: Restore standard config registers of all devices early)

Linus Torvalds
2009-02-03T19:20:57Z

On Tue, 3 Feb 2009, Linus Torvalds wrote:
>
> Hmm. The _normal_ simple irq handler does this the way I described, but
> for some reason the "handle_edge_irq()" does not. And the reason is
> actually a buglet: it needs to mask things for the "recursive interrupt"
> case.

Btw, just to clarify: none of this happens at the actual "irq_disable()"
time: it only happens if you get an interrupt _while_ it's disabled. Which
obviously shouldn't happen in the shutdown/wakeup path anyway for MSI,
since the interrupts aren't shared, but it would be good to just be extra
safe.

I do suspect we could/should just get rid of the msi masking entirely, but
that may be too scary a step.

For the current suspend/resume situation, maybe it's enough to know that
it shouldn't be happening anyway, and even if it _does_ happen on a device
that has been shut down, it's just not going to do anything. Sure, it's
doing that "writel/readl", but if it gets lost, who really cares? Nobody.

Linus