Messages in this thread | | | Date | Wed, 11 Mar 2009 22:53:04 +0100 (CET) | From | Thomas Gleixner <> | Subject | Re: [PATCH 1/10] PM: Rework handling of interrupts during suspend-resume (rev. 5) |
| |
On Wed, 11 Mar 2009, Rafael J. Wysocki wrote:
> On Wednesday 11 March 2009, Thomas Gleixner wrote: > > On Wed, 11 Mar 2009, Rafael J. Wysocki wrote: > > > On Wednesday 11 March 2009, Thomas Gleixner wrote: > > > > > + desc->status |= IRQ_SUSPENDED; > > > > > > > > This flag needs to be checked in __enable_irq(). > > > > > > [I overlooked this comment, sorry.] > > > > > > Why does it? > > > > To catch abuse and callers of enable_irq() when this flag is set. > > Hmm. This means you'd like to make enable_irq() fail if called with > IRQ_SUSPENDED set, correct? > > What if someone calls irq_disable() and then irq_enable() between > suspend_device_irqs() and resume_device_irqs()? That would be pointless, but > surely not a bug? Should irq_disable() also fail if IRQ_SUSPENDED is set?
I'm not worried about nested ones.
> Or should __enable_irq() only fail with IRQ_SUSPENDED set for desc->depth == 1?
At least it needs a WARN_ON() in that case. A very prominent one.
Thanks,
tglx
| |