diff options
Diffstat (limited to 'kernel')
| -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)  	}  	preflow_handler(desc);  	handle_irq_event(desc); -out: + +out_eoi:  	desc->irq_data.chip->irq_eoi(&desc->irq_data); +out_unlock:  	raw_spin_unlock(&desc->lock); +	return; +out: +	if (!(desc->irq_data.chip->flags & IRQCHIP_EOI_IF_HANDLED)) +		goto out_eoi; +	goto out_unlock;  }  /** | 
