Subject: Re: [PATCH] 2.6.18-rt7: PowerPC: fix breakage in threaded fasteoi type IRQ handlers

From: Sergei Shtylyov <[email-masked]>
Date: Mon, 20 Nov 2006 22:24:56 +0300

Hello.

Sergei Shtylyov wrote:

>>>>  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.

    Can't say that about the interrupt controllers without mask() method -- 
that *really* needs testing...

>>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;

    That label would generate a warning though. Should be gotten rid of now.

>>+		if (desc->chip->mask)
>>+			desc->chip->mask(irq);
>>+		goto out;
>> 	}
>> 
>> 	desc->status &= ~IRQ_PENDING;
>>
>>

WBR, Sergei