From 2f70759299451603f37a0e014f05a3553421d140 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:44:44 -0500 Subject: [PATCH] x86: ioapic lock section fix commit 7af93a8c480198ed9cb994ebe4d2d0dc1a235494 in tip. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner Signed-off-by: Paul Gortmaker --- arch/x86/kernel/apic/io_apic.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c index 77a161a..06e3e54 100644 --- a/arch/x86/kernel/apic/io_apic.c +++ b/arch/x86/kernel/apic/io_apic.c @@ -3267,7 +3267,6 @@ unsigned int create_irq_nr(unsigned int irq_want, int node) if (irq_want < nr_irqs_gsi) irq_want = nr_irqs_gsi; - raw_spin_lock_irqsave(&vector_lock, flags); for (new = irq_want; new < nr_irqs; new++) { desc_new = irq_to_desc_alloc_node(new, node); if (!desc_new) { @@ -3279,14 +3278,15 @@ unsigned int create_irq_nr(unsigned int irq_want, int node) if (cfg_new->vector != 0) continue; + raw_spin_lock_irqsave(&vector_lock, flags); desc_new = move_irq_desc(desc_new, node); cfg_new = desc_new->chip_data; if (__assign_irq_vector(new, cfg_new, apic->target_cpus()) == 0) irq = new; + raw_spin_unlock_irqrestore(&vector_lock, flags); break; } - raw_spin_unlock_irqrestore(&vector_lock, flags); if (irq > 0) dynamic_irq_init_keep_chip_data(irq); -- 1.7.0.4