On Fri, 4 May 2012 18:01:22 +0200 (CEST) Thomas Gleixner wrote: > Neil, > > On Fri, 4 May 2012, NeilBrown wrote: > > > On Wed, 25 Apr 2012 14:54:54 +0200 (CEST) Thomas Gleixner > > wrote: > > > > > Why not simply managing the pending bit for level irqs ? > > > > > > > Hi Thomas, > > thanks again for the patch. I finally made time to test it and it works as > > expected. I've included it below with a change-log entry and tested-by: > > in case that helps. > > thanks for testing. The changelog is great. You know how to make the > live of lazy buggers easier :) Just buttering you up so any future patches slip past easily :-) I think I'll need to ask for IRQS_PENDING to be set for nested interrupts too but I'll be a little while before I an look at that issue properly and propose a patch. Thanks for your help, NeilBrown > > > for_each_irq_desc(irq, desc) { > > - if (irqd_is_wakeup_set(&desc->irq_data)) { > > + if (desc->depth == 1 && > > + irqd_is_wakeup_set(&desc->irq_data)) { > > if (desc->istate & IRQS_PENDING) > > return -EBUSY; > > continue; > > I split that part into a separate patch, as it's really a different > issue. > > Thanks, > > tglx