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

From: Daniel Walker <[email-masked]>
Date: Mon, 20 Nov 2006 09:01:19 -0800

On Mon, 2006-11-20 at 17:42 +0100, Ingo Molnar wrote:
> * Daniel Walker <[email-masked]> wrote:
> 
> > It makes porting to powerpc for instance harder because some 
> > controllers have ack(), and some don't.. Some have mask(), and some 
> > don't.. So you end up with what Sergei is doing which is flat out make 
> > ack == eoi .. Where you have multiple irq chip types each one really 
> > needs an individual evaluation ..
> 
> this isnt really a problem. The current situation is simply hacky, 
> because right now there's no 'threaded' flow type at all. The x86 code 
> just moves the code away from fasteoi:
> 
>  #ifdef CONFIG_PREEMPT_HARDIRQS
>                 set_irq_chip_and_handler_name(irq, &ioapic_chip,
>                                             handle_level_irq, "level-threaded");#else
>                 set_irq_chip_and_handler_name(irq, &ioapic_chip,
>                                               handle_fasteoi_irq, "fasteoi");
>  #endif
> 
> what should happen is a handle_thread_irq irq-flow handler that will 
> first mask, and then ack or eoi (whichever callbacks is available), and 
> thus can and will handle both fasteoi, edge and level irqs.

If it still calls for arch level changes, I have an aversion to those ..
Maybe if it was internal to the set_irq_chip_and_handler_name() macro?

Daniel