Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394...
[pandora-kernel.git] / arch / alpha / kernel / irq.c
index da677f8..c626a82 100644 (file)
@@ -10,7 +10,6 @@
  * should be easier.
  */
 
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/errno.h>
@@ -43,21 +42,20 @@ void ack_bad_irq(unsigned int irq)
 #ifdef CONFIG_SMP 
 static char irq_user_affinity[NR_IRQS];
 
-int
-select_smp_affinity(unsigned int irq)
+int irq_select_affinity(unsigned int irq)
 {
        static int last_cpu;
        int cpu = last_cpu + 1;
 
-       if (!irq_desc[irq].handler->set_affinity || irq_user_affinity[irq])
+       if (!irq_desc[irq].chip->set_affinity || irq_user_affinity[irq])
                return 1;
 
-       while (!cpu_possible(cpu))
+       while (!cpu_possible(cpu) || !cpu_isset(cpu, irq_default_affinity))
                cpu = (cpu < (NR_CPUS-1) ? cpu + 1 : 0);
        last_cpu = cpu;
 
-       irq_affinity[irq] = cpumask_of_cpu(cpu);
-       irq_desc[irq].handler->set_affinity(irq, cpumask_of_cpu(cpu));
+       irq_desc[irq].affinity = cpumask_of_cpu(cpu);
+       irq_desc[irq].chip->set_affinity(irq, cpumask_of_cpu(cpu));
        return 0;
 }
 #endif /* CONFIG_SMP */
@@ -93,14 +91,14 @@ show_interrupts(struct seq_file *p, void *v)
                for_each_online_cpu(j)
                        seq_printf(p, "%10u ", kstat_cpu(j).irqs[irq]);
 #endif
-               seq_printf(p, " %14s", irq_desc[irq].handler->typename);
+               seq_printf(p, " %14s", irq_desc[irq].chip->typename);
                seq_printf(p, "  %c%s",
-                       (action->flags & SA_INTERRUPT)?'+':' ',
+                       (action->flags & IRQF_DISABLED)?'+':' ',
                        action->name);
 
                for (action=action->next; action; action = action->next) {
                        seq_printf(p, ", %c%s",
-                                 (action->flags & SA_INTERRUPT)?'+':' ',
+                                 (action->flags & IRQF_DISABLED)?'+':' ',
                                   action->name);
                }
 
@@ -128,7 +126,7 @@ unlock:
 #define MAX_ILLEGAL_IRQS 16
 
 void
-handle_irq(int irq, struct pt_regs * regs)
+handle_irq(int irq)
 {      
        /* 
         * We ack quickly, we don't want the irq controller
@@ -158,6 +156,6 @@ handle_irq(int irq, struct pt_regs * regs)
         * at IPL 0.
         */
        local_irq_disable();
-       __do_IRQ(irq, regs);
+       __do_IRQ(irq);
        irq_exit();
 }