diff options
Diffstat (limited to 'kernel/irq/chip.c')
-rw-r--r-- | kernel/irq/chip.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c index 08be5d182be3..1d3e25e68b0c 100644 --- a/kernel/irq/chip.c +++ b/kernel/irq/chip.c | |||
@@ -515,9 +515,16 @@ handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc) | |||
515 | } | 515 | } |
516 | preflow_handler(desc); | 516 | preflow_handler(desc); |
517 | handle_irq_event(desc); | 517 | handle_irq_event(desc); |
518 | out: | 518 | |
519 | out_eoi: | ||
519 | desc->irq_data.chip->irq_eoi(&desc->irq_data); | 520 | desc->irq_data.chip->irq_eoi(&desc->irq_data); |
521 | out_unlock: | ||
520 | raw_spin_unlock(&desc->lock); | 522 | raw_spin_unlock(&desc->lock); |
523 | return; | ||
524 | out: | ||
525 | if (!(desc->irq_data.chip->flags & IRQCHIP_EOI_IF_HANDLED)) | ||
526 | goto out_eoi; | ||
527 | goto out_unlock; | ||
521 | } | 528 | } |
522 | 529 | ||
523 | /** | 530 | /** |