Re: [PATCH 1/10] PM: Rework handling of interrupts during suspend-resume(rev. 5)

From: Thomas Gleixner
Date: Wed Mar 11 2009 - 17:55:49 EST


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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/