On Sat, 7 Mar 2009, Alan Stern wrote: > > You didn't answer my question. Why bother to distinguish between > "wake-up" interrupts and non-"wake-up" interrupts? > > In other words, why not simply abort the suspend if IRQ_PENDING is set > for _any_ interrupt during sysdev_suspend()? .. because some drivers might not actually shut down the hardware until they get to "suspend_late"? If even then, for that matter - a driver may simply not care, knowing that the hardware will be powered off, and will be re-initialized at resume. The thinking that you have to shut your hardware down at "->suspend()" time is a _disease_. There are literally classes of hardware out there where that would be an outright _bug_, like for a PCI bridge device. For many devices, "suspend()" has to be the phase where you shut down the _external_ stuff (eg for a disk controller, it's when you'd flush and stop your disks), but the controller itself may well be alive until later. Linus _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm