headers: remove sched.h from interrupt.h
[safe/jmp/linux-2.6] / drivers / isdn / sc / init.c
index 150759a..5a07748 100644 (file)
@@ -8,6 +8,7 @@
 #include <linux/init.h>
 #include <linux/interrupt.h>
 #include <linux/delay.h>
+#include <linux/sched.h>
 #include "includes.h"
 #include "hardware.h"
 #include "card.h"
@@ -35,12 +36,6 @@ module_param_array(irq, int, NULL, 0);
 module_param_array(ram, int, NULL, 0);
 module_param(do_reset, bool, 0);
 
-extern irqreturn_t interrupt_handler(int, void *);
-extern int sndpkt(int, int, int, struct sk_buff *);
-extern int command(isdn_ctrl *);
-extern int indicate_status(int, int, ulong, char*);
-extern int reset(int);
-
 static int identify_board(unsigned long, unsigned int);
 
 static int __init sc_init(void)
@@ -340,7 +335,8 @@ static int __init sc_init(void)
                 */
                sc_adapter[cinst]->interrupt = irq[b];
                if (request_irq(sc_adapter[cinst]->interrupt, interrupt_handler,
-                               IRQF_DISABLED, interface->id, NULL))
+                               IRQF_DISABLED, interface->id,
+                               (void *)(unsigned long) cinst))
                {
                        kfree(sc_adapter[cinst]->channel);
                        indicate_status(cinst, ISDN_STAT_UNLOAD, 0, NULL);      /* Fix me */
@@ -410,7 +406,7 @@ static void __exit sc_exit(void)
                /*
                 * Release the IRQ
                 */
-               FREE_IRQ(sc_adapter[i]->interrupt, NULL);
+               free_irq(sc_adapter[i]->interrupt, NULL);
 
                /*
                 * Reset for a clean start