diff mbox

[18/35] staging: brcm80211: use mutex instead of semaphore in dhd_linux.c

Message ID 1310678971-28952-19-git-send-email-frankyl@broadcom.com (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Franky Lin July 14, 2011, 9:29 p.m. UTC
From: Arend van Spriel <arend@broadcom.com>

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>
---
 drivers/staging/brcm80211/brcmfmac/dhd_linux.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

Comments

Dan Carpenter Aug. 1, 2011, 11:54 a.m. UTC | #1
On Thu, Jul 14, 2011 at 02:29:14PM -0700, Franky Lin wrote:
> From: Arend van Spriel <arend@broadcom.com>
> 
> The semaphore proto_sem has been replaced with mutex proto_block
> which lock certain code paths for one thread.
> 

This one doesn't apply any more after the 3.1 merge window.

It was modified in 1380516599 "Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6"

regards,
dan carpenter
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Arend van Spriel Aug. 1, 2011, 12:52 p.m. UTC | #2
On 08/01/2011 01:54 PM, Dan Carpenter wrote:
> On Thu, Jul 14, 2011 at 02:29:14PM -0700, Franky Lin wrote:
>> From: Arend van Spriel<arend@broadcom.com>
>>
>> The semaphore proto_sem has been replaced with mutex proto_block
>> which lock certain code paths for one thread.
>>
> This one doesn't apply any more after the 3.1 merge window.
>
> It was modified in 1380516599 "Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6"
>
> regards,
> dan carpenter

Hi Dan,

Thanks for the heads up. We sent three patch series that have not been 
taken into staging-next  due to the merge window. I tried looking for 
the commit id you mention (if it is one), but no luck in any common repo 
on git.kernel.org. Also I don't see a 3.1-rc1 tag yet.

I suspect we have to resend all three patch series once 3.1-rc1 is ready 
and available in Greg's staging repo. At least the patches have been on 
the mailing list long enough for people to provide us with comments. I 
already saw some of our source files mentioned in the merge of 
staging-next branch by Linus so I already had my suspicions regarding 
the patch series.

Gr. AvS
Arend van Spriel Aug. 8, 2011, 12:46 p.m. UTC | #3
On 08/01/2011 01:54 PM, Dan Carpenter wrote:
> On Thu, Jul 14, 2011 at 02:29:14PM -0700, Franky Lin wrote:
>> From: Arend van Spriel<arend@broadcom.com>
>>
>> The semaphore proto_sem has been replaced with mutex proto_block
>> which lock certain code paths for one thread.
>>
> This one doesn't apply any more after the 3.1 merge window.
>
> It was modified in 1380516599 "Merge branch 'staging-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6"
>
> regards,
> dan carpenter

Hi Greg,

Not sure what your plan is with our pending patches, but given the 
feedback from Dan could you drop all of them so I can resubmit them.

Gr. AvS
diff mbox

Patch

diff --git a/drivers/staging/brcm80211/brcmfmac/dhd_linux.c b/drivers/staging/brcm80211/brcmfmac/dhd_linux.c
index 6c8599c..310a96f 100644
--- a/drivers/staging/brcm80211/brcmfmac/dhd_linux.c
+++ b/drivers/staging/brcm80211/brcmfmac/dhd_linux.c
@@ -28,6 +28,7 @@ 
 #include <linux/fcntl.h>
 #include <linux/fs.h>
 #include <linux/uaccess.h>
+#include <linux/mutex.h>
 #include <net/cfg80211.h>
 #include <defs.h>
 #include <brcmu_utils.h>
@@ -73,7 +74,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 */
@@ -1312,7 +1313,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);
 
@@ -1582,7 +1583,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;
@@ -1593,7 +1594,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;
 	}