Thomas,
I have reasonable doubt that the delayed disable feature on linux-2.6.24 for handle_simple_irq is broken.
In 2.6.22 there was something like this:
if (unlikely(!action || (desc->status & IRQ_DISABLED))) {
if (desc->chip->mask)
desc->chip->mask(irq);
...
However in 2.6.24 the "DISABLED" IRQ in case it happens is never going to be masked.
if (unlikely(!action || (desc->status & IRQ_DISABLED)))
goto out_unlock;
I see a disabled IRQ being invoked in an endless loop.
-Michael
------------------------------------------------------------------
********* Analog Devices GmbH michael.hennerich@analog.com
** ***** Systems Engineering
** ** Wilhelm-Wagenfeld-Strasse 6
** ***** D-80807 Munich
********* Germany
Registergericht München HRB 40368, Geschäftsführer: Thomas Wessel, Vincent Roche, Joseph E. McDonough
--