diff options
Diffstat (limited to 'arch/x86/kernel/apic/io_apic.c')
-rw-r--r-- | arch/x86/kernel/apic/io_apic.c | 12 |
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 | ||
2221 | static unsigned int startup_ioapic_irq(unsigned int irq) | 2221 | static 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 | ||
2696 | static struct irq_chip ioapic_chip __read_mostly = { | 2694 | static 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 | ||
2709 | static struct irq_chip ir_ioapic_chip __read_mostly = { | 2707 | static 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 |