Subject: Re: [PATCH -rt] powerpc update

From: Ingo Molnar <[email-masked]>
Date: Wed, 18 Oct 2006 09:32:34 +0200

* Ingo Molnar <[email-masked]> wrote:

> really, the ->eoi() op should only be called for true fasteoi cases. 
> What we want here is to turn the fasteoi handler into a handler that 
> does mask+ack and then unmask. Not 'mask+eoi ... unmask' as your patch 
> does.

i.e. like the much simpler patch below. That's what i've applied to the 
soon-to-be-rt6 tree, plus the other bits of your patch. Can you confirm 
this works well on PPC?

	Ingo

Index: linux-rt.q/kernel/irq/chip.c
===================================================================
--- linux-rt.q.orig/kernel/irq/chip.c
+++ linux-rt.q/kernel/irq/chip.c
@@ -386,13 +386,15 @@ handle_fasteoi_irq(unsigned int irq, str
 	}
 
 	desc->status |= IRQ_INPROGRESS;
+
 	/*
-	 * fasteoi should not be used for threaded IRQ handlers!
+	 * In the threaded case we fall back to a mask+ack sequence:
 	 */
 	if (redirect_hardirq(desc)) {
-		WARN_ON_ONCE(1);
+		mask_ack_irq(desc, irq);
 		goto out_unlock;
 	}
+
 	desc->status &= ~IRQ_PENDING;
 	spin_unlock(&desc->lock);