For threaded interrupt handlers in oneshot mode, the hard irq handler will not yet have satisfied the device, so we need to keep the line masked until irq_finalize_oneshot(). --- kernel/irq/chip.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c index 2d25c62..b79ec1d 100644 --- a/kernel/irq/chip.c +++ b/kernel/irq/chip.c @@ -589,7 +589,8 @@ handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc) raw_spin_lock(&desc->lock); desc->status &= ~IRQ_INPROGRESS; #ifdef CONFIG_IPIPE - desc->irq_data.chip->irq_unmask(&desc->irq_data); + if (!(desc->status & IRQ_MASKED)) + desc->irq_data.chip->irq_unmask(&desc->irq_data); out: #else out: -- 1.7.6.4 _______________________________________________ Adeos-main mailing list Adeos-main@gna.org https://mail.gna.org/listinfo/adeos-main