aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/irq/resend.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/irq/resend.c')
-rw-r--r--kernel/irq/resend.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/kernel/irq/resend.c b/kernel/irq/resend.c
index 60b20261041b..f83387cd11f3 100644
--- a/kernel/irq/resend.c
+++ b/kernel/irq/resend.c
@@ -62,8 +62,11 @@ void check_irq_resend(struct irq_desc *desc, unsigned int irq)
62 */ 62 */
63 if (desc->status & IRQ_LEVEL) 63 if (desc->status & IRQ_LEVEL)
64 return; 64 return;
65 if ((desc->status & (IRQ_PENDING | IRQ_REPLAY)) == IRQ_PENDING) { 65 if (desc->istate & IRQS_REPLAY)
66 desc->status = (desc->status & ~IRQ_PENDING) | IRQ_REPLAY; 66 return;
67 if (desc->status & IRQ_PENDING) {
68 desc->status &= ~IRQ_PENDING;
69 desc->istate |= IRQS_REPLAY;
67 70
68 if (!desc->irq_data.chip->irq_retrigger || 71 if (!desc->irq_data.chip->irq_retrigger ||
69 !desc->irq_data.chip->irq_retrigger(&desc->irq_data)) { 72 !desc->irq_data.chip->irq_retrigger(&desc->irq_data)) {