On Thu, 24 Mar 2011, Thomas Gleixner wrote: > On Thu, 24 Mar 2011, Maciej W. Rozycki wrote: > > > On Thu, 24 Mar 2011, Ralf Baechle wrote: > > > > > Thanks, queued for 2.6.39. > > > > Ralf, thanks for cc-ing me. > > > > NACK, where's the logic to ack IOASIC DMA IRQs gone? The SIR has to be > > written as in clear_ioasic_irq() for the respective DMA transfer to resume > > and the interrupt in question be able to retrigger in the future. > > Errm. > > #define ack_ioasic_dma_irq ack_ioasic_irq > > .name = "IO-ASIC-DMA", > .ack = ack_ioasic_dma_irq > > So the .ack pointer is filled with ack_ioasic_irq, right ? The ack used to be made in clear_ioasic_irq(), that was called from end_ioasic_dma_irq(), that was used as the .end handler. This semantics has to be preserved or hardware won't work anymore as expected. This is a regression. > So I did: > > -#define ack_ioasic_dma_irq ack_ioasic_irq > > + .irq_ack = ack_ioasic_irq, > > Pretty identical as far as I can tell. The define is rather pointless, > isn't it ? Yes, but it's not the .ack handler I'm concerned about, but the hardware ack that has to be made once higher-level processing has finished. > > The rest is probably OK, but why has the inline hint been removed? > > These functions are simple, worth a couple of assembly instructions at > > most and used throughout these files, so it's good to ask GCC to inline > > them if worthwhile even if -fno-unit-at-a-time has been requested for > > whatever reason. > > The only use of these functions is in the chip pointers, so the inline > is pointless. But I really dont care. mask_ioasic_irq() is called from ack_ioasic_irq() for one. Maciej