aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/apic/io_apic.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2010-09-28 10:00:34 -0400
committerThomas Gleixner <tglx@linutronix.de>2010-10-12 10:53:37 -0400
commit61a38ce3f59cdb4654e9444329195bd57c3baf74 (patch)
treec0def383fde6371cd7ef2abb50227da4fcae6d91 /arch/x86/kernel/apic/io_apic.c
parentdd5f15e5cf104c9170b76ae3274f35b42a3e4161 (diff)
x86: io_apic: Convert startup to new irq_chip function
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/apic/io_apic.c')
-rw-r--r--arch/x86/kernel/apic/io_apic.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index 3c4dee8a9ef7..5ced690b8496 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -2218,11 +2218,10 @@ static int __init timer_irq_works(void)
2218 * an edge even if it isn't on the 8259A... 2218 * an edge even if it isn't on the 8259A...
2219 */ 2219 */
2220 2220
2221static unsigned int startup_ioapic_irq(unsigned int irq) 2221static unsigned int startup_ioapic_irq(struct irq_data *data)
2222{ 2222{
2223 int was_pending = 0; 2223 int was_pending = 0, irq = data->irq;
2224 unsigned long flags; 2224 unsigned long flags;
2225 struct irq_cfg *cfg;
2226 2225
2227 raw_spin_lock_irqsave(&ioapic_lock, flags); 2226 raw_spin_lock_irqsave(&ioapic_lock, flags);
2228 if (irq < legacy_pic->nr_legacy_irqs) { 2227 if (irq < legacy_pic->nr_legacy_irqs) {
@@ -2230,8 +2229,7 @@ static unsigned int startup_ioapic_irq(unsigned int irq)
2230 if (legacy_pic->irq_pending(irq)) 2229 if (legacy_pic->irq_pending(irq))
2231 was_pending = 1; 2230 was_pending = 1;
2232 } 2231 }
2233 cfg = irq_cfg(irq); 2232 __unmask_ioapic(data->chip_data);
2234 __unmask_ioapic(cfg);
2235 raw_spin_unlock_irqrestore(&ioapic_lock, flags); 2233 raw_spin_unlock_irqrestore(&ioapic_lock, flags);
2236 2234
2237 return was_pending; 2235 return was_pending;
@@ -2695,7 +2693,7 @@ static void ir_ack_apic_level(unsigned int irq)
2695 2693
2696static struct irq_chip ioapic_chip __read_mostly = { 2694static struct irq_chip ioapic_chip __read_mostly = {
2697 .name = "IO-APIC", 2695 .name = "IO-APIC",
2698 .startup = startup_ioapic_irq, 2696 .irq_startup = startup_ioapic_irq,
2699 .mask = mask_ioapic_irq, 2697 .mask = mask_ioapic_irq,
2700 .unmask = unmask_ioapic_irq, 2698 .unmask = unmask_ioapic_irq,
2701 .ack = ack_apic_edge, 2699 .ack = ack_apic_edge,
@@ -2708,7 +2706,7 @@ static struct irq_chip ioapic_chip __read_mostly = {
2708 2706
2709static struct irq_chip ir_ioapic_chip __read_mostly = { 2707static struct irq_chip ir_ioapic_chip __read_mostly = {
2710 .name = "IR-IO-APIC", 2708 .name = "IR-IO-APIC",
2711 .startup = startup_ioapic_irq, 2709 .irq_startup = startup_ioapic_irq,
2712 .mask = mask_ioapic_irq, 2710 .mask = mask_ioapic_irq,
2713 .unmask = unmask_ioapic_irq, 2711 .unmask = unmask_ioapic_irq,
2714#ifdef CONFIG_INTR_REMAP 2712#ifdef CONFIG_INTR_REMAP