On Fri, 01 Dec 2006 15:58:07 +0100, Franck Bui-Huu <vagabon.xyz@xxxxxxxxx> wrote: > __do_IRQ() is needed only by irq handlers that can't use > default handler defined in kernel/irq/chip.c. > > For others platforms there's no need to compile this function > since it won't be used. For those platforms this patch defines > GENERIC_HARDIRQS_NO__DO_IRQ symbol which is used exactly for > this purpose. > > Futhermore for platforms which do not use __do_IRQ(), end() > method which is part of the 'irq_chip' structure is not used. > This patch simply removes this method in this case. As I wrote in separate mail, I think I had fault on ioasic_dma_irq_type. So please drop some part from your patch. > @@ -171,6 +171,7 @@ config MACH_DECSTATION > select SYS_SUPPORTS_128HZ > select SYS_SUPPORTS_256HZ > select SYS_SUPPORTS_1024HZ > + select GENERIC_HARDIRQS_NO__DO_IRQ > help > This enables support for DEC's MIPS based workstations. For details > see the Linux/MIPS FAQ on <http://www.linux-mips.org/> and the and > @@ -77,20 +70,12 @@ static struct irq_chip ioasic_irq_type = > > #define ack_ioasic_dma_irq ack_ioasic_irq > > -static inline void end_ioasic_dma_irq(unsigned int irq) > -{ > - clear_ioasic_irq(irq); > - fast_iob(); > - end_ioasic_irq(irq); > -} > - > static struct irq_chip ioasic_dma_irq_type = { > .typename = "IO-ASIC-DMA", > .ack = ack_ioasic_dma_irq, > .mask = mask_ioasic_dma_irq, > .mask_ack = ack_ioasic_dma_irq, > .unmask = unmask_ioasic_dma_irq, > - .end = end_ioasic_dma_irq, > }; > > Sorry for confusion... --- Atsushi Nemoto