On Monday 16 May 2005 2:19 pm, Jordan Crouse wrote: > On Mon, 16 May 2005 16:16:06 -0400 > "Adam Belay" <ambx1@xxxxxxxxxx> wrote: > > > b.) You're assuming every device has its own interrupt. This may not > > be the case. Let's say one device was sharing interrupts with a few > > other devices... > > I ran into this very problem a while back on 2.4. On my platform, the > EHCI and OCHI host controllers share an interrupt. ... > > Now, granted that particular scenario is a corner case, and the PCI > hardware should have been configured better, but it shows that you > can't assume that any given interrupt handler will only be called with > active hardware underneath. Very true, and that's part of why drivers/usb/core/hcd-pci.c frees IRQs during suspend, and reclaims them later. AFAICT that code is the most generic PCI suspend/resume code now available ... since it's got to work with dozens of different implementations of EHCI, OHCI, and UHCI; with widely varying BIOS versions and bugs; and where not all controllers support the PCI PM extensions. Note the wierdnesses there ... cases where the PCI API calls are wierdly asymmetric, and where "swsusp" can really bork things by entering bizarre "resume" paths. - Dave