On Fri, May 23, 2014 at 02:57:49PM +0100, Daniel Thompson wrote:
+void eoi_fiq(int fiq) +{
- struct irq_data *irq_data = irq_get_irq_data(fiq + fiq_start);
- struct irq_chip *chip = irq_data_get_irq_chip(irq_data);
- if (chip->irq_eoi)
chip->irq_eoi(irq_data);
+}
So what if the IRQ chip takes a spinlock? You can't take spinlocks in FIQ context... Who checks for that kind of stuff - just hoping that the IRQ driver doesn't take a spinlock sounds real fragile.