x86: Readd missing irq_to_desc() in fixup_irq()
authorThomas Gleixner <tglx@linutronix.de>
Sat, 12 Feb 2011 10:51:03 +0000 (11:51 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 17 Feb 2011 23:15:08 +0000 (15:15 -0800)
commit 5117348dea5e3ecbb785cfa1271386fb49332b41 upstream.

commit a3c08e5d(x86: Convert irq_chip access to new functions)
accidentally zapped desc = irq_to_desc(irq); in the vector loop.
So we lock some random irq descriptor.

Add it back.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/x86/kernel/irq.c

index 83ec0175f986a5742c2ef85eff69d24100cd44b6..e430114ba3297ac5e836afe8cff1237192d174a9 100644 (file)
@@ -357,7 +357,8 @@ void fixup_irqs(void)
                if (irr  & (1 << (vector % 32))) {
                        irq = __get_cpu_var(vector_irq)[vector];
 
-                       data = irq_get_irq_data(irq);
+                       desc = irq_to_desc(irq);
+                       data = &desc->irq_data;
                        raw_spin_lock(&desc->lock);
                        if (data->chip->irq_retrigger)
                                data->chip->irq_retrigger(data);