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
[email protected]
https://mail.gna.org/listinfo/adeos-main