diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2010-09-27 08:44:53 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2010-10-04 06:43:41 -0400 |
commit | 0c5c15572ac096001f52d37b416f2a4be9aebb80 (patch) | |
tree | 54c2559cac7e6ee71e31d6b41a1980a392f202b3 /kernel/irq | |
parent | 9205e31d1af0f725e71bbae10d199c6b9e8d6dd8 (diff) |
genirq: Provide compat handling for chip->eoi()
Wrap the old chip function eoi() until the migration is complete and
the old chip functions are removed.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
LKML-Reference: <20100927121842.339657617@linutronix.de>
Reviewed-by: H. Peter Anvin <hpa@zytor.com>
Reviewed-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/irq')
-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 |