]> err.no Git - linux-2.6/blobdiff - arch/m68k/kernel/ints.c
[S390] Add topology_core_siblings to topology.h
[linux-2.6] / arch / m68k / kernel / ints.c
index 6fa893fc5fd60dc6030196795bea2acc8d48300f..ded7dd2f67b2803688965a49f0abb72faf1e0463 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;
@@ -184,7 +186,7 @@ int setup_irq(unsigned int irq, struct irq_node *node)
 
        if (irq >= NR_IRQS || !(contr = irq_controller[irq])) {
                printk("%s: Incorrect IRQ %d from %s\n",
-                      __FUNCTION__, irq, node->devname);
+                      __func__, irq, node->devname);
                return -ENXIO;
        }
 
@@ -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;
@@ -247,7 +249,7 @@ void free_irq(unsigned int irq, void *dev_id)
        unsigned long flags;
 
        if (irq >= NR_IRQS || !(contr = irq_controller[irq])) {
-               printk("%s: Incorrect IRQ %d\n", __FUNCTION__, irq);
+               printk("%s: Incorrect IRQ %d\n", __func__, irq);
                return;
        }
 
@@ -265,7 +267,7 @@ void free_irq(unsigned int irq, void *dev_id)
                node->handler = NULL;
        } else
                printk("%s: Removing probably wrong IRQ %d\n",
-                      __FUNCTION__, irq);
+                      __func__, irq);
 
        if (!irq_list[irq]) {
                if (contr->shutdown)
@@ -286,7 +288,7 @@ void enable_irq(unsigned int irq)
 
        if (irq >= NR_IRQS || !(contr = irq_controller[irq])) {
                printk("%s: Incorrect IRQ %d\n",
-                      __FUNCTION__, irq);
+                      __func__, irq);
                return;
        }
 
@@ -310,7 +312,7 @@ void disable_irq(unsigned int irq)
 
        if (irq >= NR_IRQS || !(contr = irq_controller[irq])) {
                printk("%s: Incorrect IRQ %d\n",
-                      __FUNCTION__, irq);
+                      __func__, irq);
                return;
        }
 
@@ -324,6 +326,10 @@ void disable_irq(unsigned int irq)
 
 EXPORT_SYMBOL(disable_irq);
 
+void disable_irq_nosync(unsigned int irq) __attribute__((alias("disable_irq")));
+
+EXPORT_SYMBOL(disable_irq_nosync);
+
 int m68k_irq_startup(unsigned int irq)
 {
        if (irq <= IRQ_AUTO_7)