Hmm, that just won't do for PPC threaded fasteoi flows! What you'll get is a threaded IRQ with EOI *never ever* issued, unless my PPC patch is also in...
ok, how about the patch below in addition?
or rather, the one below. Untested.
Actually, it's been tested since it's close to Daniel's original variant. Should do it.
Index: linux/kernel/irq/chip.c
===================================================================
--- linux.orig/kernel/irq/chip.c
+++ linux/kernel/irq/chip.c
@@ -392,11 +394,12 @@ handle_fasteoi_irq(unsigned int irq, str
desc->status |= IRQ_INPROGRESS;
/*
- * In the threaded case we fall back to a mask+ack sequence:
+ * In the threaded case we fall back to a mask+eoi sequence:
*/
if (redirect_hardirq(desc)) {
- mask_ack_irq(desc, irq);
- goto out_unlock;
+ if (desc->chip->mask)
+ desc->chip->mask(irq);
+ goto out;
}
desc->status &= ~IRQ_PENDING;