linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / drivers / isdn / capi / kcapi.c
index 8c4fcb9..feec40c 100644 (file)
@@ -32,7 +32,6 @@
 #ifdef CONFIG_AVMB1_COMPAT
 #include <linux/b1lli.h>
 #endif
-#include <linux/mutex.h>
 
 static char *revision = "$Revision: 1.1.2.8 $";
 
@@ -67,7 +66,7 @@ LIST_HEAD(capi_drivers);
 DEFINE_RWLOCK(capi_drivers_list_lock);
 
 static DEFINE_RWLOCK(application_lock);
-static DEFINE_MUTEX(controller_mutex);
+static DECLARE_MUTEX(controller_sem);
 
 struct capi20_appl *capi_applications[CAPI_MAXAPPL];
 struct capi_ctr *capi_cards[CAPI_MAXCONTR];
@@ -396,20 +395,20 @@ attach_capi_ctr(struct capi_ctr *card)
 {
        int i;
 
-       mutex_lock(&controller_mutex);
+       down(&controller_sem);
 
        for (i = 0; i < CAPI_MAXCONTR; i++) {
                if (capi_cards[i] == NULL)
                        break;
        }
        if (i == CAPI_MAXCONTR) {
-               mutex_unlock(&controller_mutex);
+               up(&controller_sem);
                printk(KERN_ERR "kcapi: out of controller slots\n");
                return -EBUSY;
        }
        capi_cards[i] = card;
 
-       mutex_unlock(&controller_mutex);
+       up(&controller_sem);
 
        card->nrecvctlpkt = 0;
        card->nrecvdatapkt = 0;
@@ -532,13 +531,13 @@ u16 capi20_register(struct capi20_appl *ap)
 
        write_unlock_irqrestore(&application_lock, flags);
        
-       mutex_lock(&controller_mutex);
+       down(&controller_sem);
        for (i = 0; i < CAPI_MAXCONTR; i++) {
                if (!capi_cards[i] || capi_cards[i]->cardstate != CARD_RUNNING)
                        continue;
                register_appl(capi_cards[i], applid, &ap->rparam);
        }
-       mutex_unlock(&controller_mutex);
+       up(&controller_sem);
 
        if (showcapimsgs & 1) {
                printk(KERN_DEBUG "kcapi: appl %d up\n", applid);
@@ -561,13 +560,13 @@ u16 capi20_release(struct capi20_appl *ap)
        capi_applications[ap->applid - 1] = NULL;
        write_unlock_irqrestore(&application_lock, flags);
 
-       mutex_lock(&controller_mutex);
+       down(&controller_sem);
        for (i = 0; i < CAPI_MAXCONTR; i++) {
                if (!capi_cards[i] || capi_cards[i]->cardstate != CARD_RUNNING)
                        continue;
                release_appl(capi_cards[i], ap->applid);
        }
-       mutex_unlock(&controller_mutex);
+       up(&controller_sem);
 
        flush_scheduled_work();
        skb_queue_purge(&ap->recv_queue);