SPIN_LOCK_UNLOCKED cleanup in arch/m68k
[linux-2.6.git] / arch / m68k / kernel / ints.c
index 6fa893f..60d4d75 100644 (file)
@@ -28,6 +28,7 @@
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/sched.h>
+#include <linux/interrupt.h>
 #include <linux/kernel_stat.h>
 #include <linux/errno.h>
 #include <linux/init.h>
@@ -58,14 +59,14 @@ static int m68k_first_user_vec;
 
 static struct irq_controller auto_irq_controller = {
        .name           = "auto",
-       .lock           = SPIN_LOCK_UNLOCKED,
+       .lock           = __SPIN_LOCK_UNLOCKED(auto_irq_controller.lock),
        .startup        = m68k_irq_startup,
        .shutdown       = m68k_irq_shutdown,
 };
 
 static struct irq_controller user_irq_controller = {
        .name           = "user",
-       .lock           = SPIN_LOCK_UNLOCKED,
+       .lock           = __SPIN_LOCK_UNLOCKED(user_irq_controller.lock),
        .startup        = m68k_irq_startup,
        .shutdown       = m68k_irq_shutdown,
 };
@@ -132,6 +133,7 @@ void __init m68k_setup_user_interrupt(unsigned int vec, unsigned int cnt,
 {
        int i;
 
+       BUG_ON(IRQ_USER + cnt >= NR_IRQS);
        m68k_first_user_vec = vec;
        for (i = 0; i < cnt; i++)
                irq_controller[IRQ_USER + i] = &user_irq_controller;
@@ -216,7 +218,7 @@ int setup_irq(unsigned int irq, struct irq_node *node)
 }
 
 int request_irq(unsigned int irq,
-               irqreturn_t (*handler) (int, void *),
+               irq_handler_t handler,
                unsigned long flags, const char *devname, void *dev_id)
 {
        struct irq_node *node;