Messages in this thread | | | Date | Tue, 3 Feb 2009 11:19:48 -0800 (PST) | From | Linus Torvalds <> | Subject | Re: Reworking suspend-resume sequence (was: Re: PCI PM: Restore standard config registers of all devices early) |
| |
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
| |