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 | |
| 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>
| -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 |
