Merge commit 'v2.6.39-rc3' into for-2.6.39
[pandora-kernel.git] / arch / ia64 / kernel / smpboot.c
index d003b50..14ec641 100644 (file)
@@ -677,7 +677,7 @@ extern void fixup_irqs(void);
 int migrate_platform_irqs(unsigned int cpu)
 {
        int new_cpei_cpu;
-       struct irq_desc *desc = NULL;
+       struct irq_data *data = NULL;
        const struct cpumask *mask;
        int             retval = 0;
 
@@ -693,20 +693,20 @@ int migrate_platform_irqs(unsigned int cpu)
                        new_cpei_cpu = any_online_cpu(cpu_online_map);
                        mask = cpumask_of(new_cpei_cpu);
                        set_cpei_target_cpu(new_cpei_cpu);
-                       desc = irq_desc + ia64_cpe_irq;
+                       data = irq_get_irq_data(ia64_cpe_irq);
                        /*
                         * Switch for now, immediately, we need to do fake intr
                         * as other interrupts, but need to study CPEI behaviour with
                         * polling before making changes.
                         */
-                       if (desc) {
-                               desc->chip->disable(ia64_cpe_irq);
-                               desc->chip->set_affinity(ia64_cpe_irq, mask);
-                               desc->chip->enable(ia64_cpe_irq);
-                               printk ("Re-targetting CPEI to cpu %d\n", new_cpei_cpu);
+                       if (data && data->chip) {
+                               data->chip->irq_disable(data);
+                               data->chip->irq_set_affinity(data, mask, false);
+                               data->chip->irq_enable(data);
+                               printk ("Re-targeting CPEI to cpu %d\n", new_cpei_cpu);
                        }
                }
-               if (!desc) {
+               if (!data) {
                        printk ("Unable to retarget CPEI, offline cpu [%d] failed\n", cpu);
                        retval = -EBUSY;
                }