]> git.openfabrics.org - ~emulex/infiniband.git/commitdiff
staging: brcm80211: use mutex instead of semaphore in dhd_linux.c
authorArend van Spriel <arend@broadcom.com>
Mon, 8 Aug 2011 13:58:03 +0000 (15:58 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 23 Aug 2011 19:59:55 +0000 (12:59 -0700)
The semaphore proto_sem has been replaced with mutex proto_block
which lock certain code paths for one thread.

Signed-off-by: Arend van Spriel <arend@broadcom.com>
Reviewed-by: Roland Vossen <rvossen@broadcom.com>
Reviewed-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/brcm80211/brcmfmac/dhd_linux.c

index 05dada98eb6bfb6bbacc0a6d8c5cf41834d39ffd..4ba9d7dbd67f43f1ddd7895a46903b8e568d59dc 100644 (file)
@@ -28,8 +28,8 @@
 #include <linux/fcntl.h>
 #include <linux/fs.h>
 #include <linux/uaccess.h>
-#include <linux/interrupt.h>
 #include <linux/hardirq.h>
+#include <linux/mutex.h>
 #include <net/cfg80211.h>
 #include <defs.h>
 #include <brcmu_utils.h>
@@ -75,7 +75,7 @@ struct brcmf_info {
        /* OS/stack specifics */
        struct brcmf_if *iflist[BRCMF_MAX_IFS];
 
-       struct semaphore proto_sem;
+       struct mutex proto_block;
        wait_queue_head_t ioctl_resp_wait;
 
        /* Thread to issue ioctl for multicast */
@@ -1314,7 +1314,7 @@ struct brcmf_pub *brcmf_attach(struct brcmf_bus *bus, uint bus_hdrlen)
                goto fail;
 
        net->netdev_ops = NULL;
-       sema_init(&drvr_priv->proto_sem, 1);
+       mutex_init(&drvr_priv->proto_block);
        /* Initialize other structure content */
        init_waitqueue_head(&drvr_priv->ioctl_resp_wait);
 
@@ -1584,7 +1584,7 @@ int brcmf_os_proto_block(struct brcmf_pub *drvr)
        struct brcmf_info *drvr_priv = drvr->info;
 
        if (drvr_priv) {
-               down(&drvr_priv->proto_sem);
+               mutex_lock(&drvr_priv->proto_block);
                return 1;
        }
        return 0;
@@ -1595,7 +1595,7 @@ int brcmf_os_proto_unblock(struct brcmf_pub *drvr)
        struct brcmf_info *drvr_priv = drvr->info;
 
        if (drvr_priv) {
-               up(&drvr_priv->proto_sem);
+               mutex_unlock(&drvr_priv->proto_block);
                return 1;
        }