]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - arch/x86/kernel/irq_64.c
x86: Unify fixup_irqs() for 32-bit and 64-bit kernels
[net-next-2.6.git] / arch / x86 / kernel / irq_64.c
index 977d8b43a0ddc06597ff46942730e6759d2ca035..acf8fbf8fbda1960de6cbd18eaf47a0a049eed8b 100644 (file)
@@ -62,64 +62,6 @@ bool handle_irq(unsigned irq, struct pt_regs *regs)
        return true;
 }
 
-#ifdef CONFIG_HOTPLUG_CPU
-/* A cpu has been removed from cpu_online_mask.  Reset irq affinities. */
-void fixup_irqs(void)
-{
-       unsigned int irq;
-       static int warned;
-       struct irq_desc *desc;
-
-       for_each_irq_desc(irq, desc) {
-               int break_affinity = 0;
-               int set_affinity = 1;
-               const struct cpumask *affinity;
-
-               if (!desc)
-                       continue;
-               if (irq == 2)
-                       continue;
-
-               /* interrupt's are disabled at this point */
-               spin_lock(&desc->lock);
-
-               affinity = desc->affinity;
-               if (!irq_has_action(irq) ||
-                   cpumask_equal(affinity, cpu_online_mask)) {
-                       spin_unlock(&desc->lock);
-                       continue;
-               }
-
-               if (cpumask_any_and(affinity, cpu_online_mask) >= nr_cpu_ids) {
-                       break_affinity = 1;
-                       affinity = cpu_all_mask;
-               }
-
-               if (desc->chip->mask)
-                       desc->chip->mask(irq);
-
-               if (desc->chip->set_affinity)
-                       desc->chip->set_affinity(irq, affinity);
-               else if (!(warned++))
-                       set_affinity = 0;
-
-               if (desc->chip->unmask)
-                       desc->chip->unmask(irq);
-
-               spin_unlock(&desc->lock);
-
-               if (break_affinity && set_affinity)
-                       printk("Broke affinity for irq %i\n", irq);
-               else if (!set_affinity)
-                       printk("Cannot set affinity for irq %i\n", irq);
-       }
-
-       /* That doesn't seem sufficient.  Give it 1ms. */
-       local_irq_enable();
-       mdelay(1);
-       local_irq_disable();
-}
-#endif
 
 extern void call_softirq(void);