diff options
-rw-r--r-- | kernel/irq/chip.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c index 09c1a4493440..c8648a83b80a 100644 --- a/kernel/irq/chip.c +++ b/kernel/irq/chip.c | |||
@@ -345,6 +345,11 @@ static void compat_irq_mask_ack(struct irq_data *data) | |||
345 | data->chip->mask_ack(data->irq); | 345 | data->chip->mask_ack(data->irq); |
346 | } | 346 | } |
347 | 347 | ||
348 | static void compat_irq_eoi(struct irq_data *data) | ||
349 | { | ||
350 | data->chip->eoi(data->irq); | ||
351 | } | ||
352 | |||
348 | static void compat_bus_lock(struct irq_data *data) | 353 | static void compat_bus_lock(struct irq_data *data) |
349 | { | 354 | { |
350 | data->chip->bus_lock(data->irq); | 355 | data->chip->bus_lock(data->irq); |
@@ -390,6 +395,8 @@ void irq_chip_set_defaults(struct irq_chip *chip) | |||
390 | chip->irq_ack = compat_irq_ack; | 395 | chip->irq_ack = compat_irq_ack; |
391 | if (chip->mask_ack) | 396 | if (chip->mask_ack) |
392 | chip->irq_mask_ack = compat_irq_mask_ack; | 397 | chip->irq_mask_ack = compat_irq_mask_ack; |
398 | if (chip->eoi) | ||
399 | chip->irq_eoi = compat_irq_eoi; | ||
393 | } | 400 | } |
394 | 401 | ||
395 | static inline void mask_ack_irq(struct irq_desc *desc) | 402 | static inline void mask_ack_irq(struct irq_desc *desc) |
@@ -596,7 +603,7 @@ handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc) | |||
596 | raw_spin_lock(&desc->lock); | 603 | raw_spin_lock(&desc->lock); |
597 | desc->status &= ~IRQ_INPROGRESS; | 604 | desc->status &= ~IRQ_INPROGRESS; |
598 | out: | 605 | out: |
599 | desc->irq_data.chip->eoi(irq); | 606 | desc->irq_data.chip->irq_eoi(&desc->irq_data); |
600 | 607 | ||
601 | raw_spin_unlock(&desc->lock); | 608 | raw_spin_unlock(&desc->lock); |
602 | } | 609 | } |
@@ -698,8 +705,8 @@ handle_percpu_irq(unsigned int irq, struct irq_desc *desc) | |||
698 | if (!noirqdebug) | 705 | if (!noirqdebug) |
699 | note_interrupt(irq, desc, action_ret); | 706 | note_interrupt(irq, desc, action_ret); |
700 | 707 | ||
701 | if (desc->irq_data.chip->eoi) | 708 | if (desc->irq_data.chip->irq_eoi) |
702 | desc->irq_data.chip->eoi(irq); | 709 | desc->irq_data.chip->irq_eoi(&desc->irq_data); |
703 | } | 710 | } |
704 | 711 | ||
705 | void | 712 | void |