summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/bcm4329/linux_osl.c
diff options
context:
space:
mode:
authorDima Zavin <dima@android.com>2011-01-05 16:04:43 -0800
committerColin Cross <ccross@android.com>2011-06-14 09:09:32 -0700
commitf23ba5021d5c4e35f0973dd0a15aa7dceaea0293 (patch)
tree57de522ee4dcbd2c04d73966e3c05fe8f1a31c2c /drivers/net/wireless/bcm4329/linux_osl.c
parentda65eba112b2bcd1f54eb41bb0960078eba1657e (diff)
net: wireless: bcm4329: convert sempahore mutexes to real mutexes
Change-Id: I1cf1b0bfc2167d1be535d5066951796a569788e5 Signed-off-by: Dima Zavin <dima@android.com>
Diffstat (limited to 'drivers/net/wireless/bcm4329/linux_osl.c')
-rw-r--r--drivers/net/wireless/bcm4329/linux_osl.c31
1 files changed, 16 insertions, 15 deletions
diff --git a/drivers/net/wireless/bcm4329/linux_osl.c b/drivers/net/wireless/bcm4329/linux_osl.c
index d00bd1ca291..980416baf91 100644
--- a/drivers/net/wireless/bcm4329/linux_osl.c
+++ b/drivers/net/wireless/bcm4329/linux_osl.c
@@ -35,6 +35,7 @@
#include <bcmutils.h>
#include <linux/delay.h>
#include <pcicfg.h>
+#include <linux/mutex.h>
#define PCI_CFG_RETRY 10
@@ -46,7 +47,7 @@
#define STATIC_BUF_SIZE (PAGE_SIZE*2)
#define STATIC_BUF_TOTAL_LEN (MAX_STATIC_BUF_NUM*STATIC_BUF_SIZE)
typedef struct bcm_static_buf {
- struct semaphore static_sem;
+ struct mutex static_sem;
unsigned char *buf_ptr;
unsigned char buf_use[MAX_STATIC_BUF_NUM];
} bcm_static_buf_t;
@@ -57,7 +58,7 @@ static bcm_static_buf_t *bcm_static_buf = 0;
typedef struct bcm_static_pkt {
struct sk_buff *skb_4k[MAX_STATIC_PKT_NUM];
struct sk_buff *skb_8k[MAX_STATIC_PKT_NUM];
- struct semaphore osl_pkt_sem;
+ struct mutex osl_pkt_sem;
unsigned char pkt_use[MAX_STATIC_PKT_NUM*2];
} bcm_static_pkt_t;
static bcm_static_pkt_t *bcm_static_skb = 0;
@@ -199,7 +200,7 @@ osl_attach(void *pdev, uint bustype, bool pkttag)
/* printk("alloc static buf at %x!\n", (unsigned int)bcm_static_buf); */
}
- init_MUTEX(&bcm_static_buf->static_sem);
+ mutex_init(&bcm_static_buf->static_sem);
bcm_static_buf->buf_ptr = (unsigned char *)bcm_static_buf + STATIC_BUF_SIZE;
@@ -217,7 +218,7 @@ osl_attach(void *pdev, uint bustype, bool pkttag)
for (i = 0; i < MAX_STATIC_PKT_NUM*2; i++)
bcm_static_skb->pkt_use[i] = 0;
- init_MUTEX(&bcm_static_skb->osl_pkt_sem);
+ mutex_init(&bcm_static_skb->osl_pkt_sem);
}
#endif
return osh;
@@ -304,7 +305,7 @@ osl_pktget_static(osl_t *osh, uint len)
}
- down(&bcm_static_skb->osl_pkt_sem);
+ mutex_lock(&bcm_static_skb->osl_pkt_sem);
if (len <= PAGE_SIZE)
{
@@ -317,7 +318,7 @@ osl_pktget_static(osl_t *osh, uint len)
if (i != MAX_STATIC_PKT_NUM)
{
bcm_static_skb->pkt_use[i] = 1;
- up(&bcm_static_skb->osl_pkt_sem);
+ mutex_unlock(&bcm_static_skb->osl_pkt_sem);
skb = bcm_static_skb->skb_4k[i];
skb->tail = skb->data + len;
@@ -337,7 +338,7 @@ osl_pktget_static(osl_t *osh, uint len)
if (i != MAX_STATIC_PKT_NUM)
{
bcm_static_skb->pkt_use[i+MAX_STATIC_PKT_NUM] = 1;
- up(&bcm_static_skb->osl_pkt_sem);
+ mutex_unlock(&bcm_static_skb->osl_pkt_sem);
skb = bcm_static_skb->skb_8k[i];
skb->tail = skb->data + len;
skb->len = len;
@@ -347,7 +348,7 @@ osl_pktget_static(osl_t *osh, uint len)
- up(&bcm_static_skb->osl_pkt_sem);
+ mutex_unlock(&bcm_static_skb->osl_pkt_sem);
printk("all static pkt in use!\n");
return osl_pktget(osh, len);
}
@@ -362,9 +363,9 @@ osl_pktfree_static(osl_t *osh, void *p, bool send)
{
if (p == bcm_static_skb->skb_4k[i])
{
- down(&bcm_static_skb->osl_pkt_sem);
+ mutex_lock(&bcm_static_skb->osl_pkt_sem);
bcm_static_skb->pkt_use[i] = 0;
- up(&bcm_static_skb->osl_pkt_sem);
+ mutex_unlock(&bcm_static_skb->osl_pkt_sem);
return;
@@ -466,7 +467,7 @@ osl_malloc(osl_t *osh, uint size)
int i = 0;
if ((size >= PAGE_SIZE)&&(size <= STATIC_BUF_SIZE))
{
- down(&bcm_static_buf->static_sem);
+ mutex_lock(&bcm_static_buf->static_sem);
for (i = 0; i < MAX_STATIC_BUF_NUM; i++)
{
@@ -476,13 +477,13 @@ osl_malloc(osl_t *osh, uint size)
if (i == MAX_STATIC_BUF_NUM)
{
- up(&bcm_static_buf->static_sem);
+ mutex_unlock(&bcm_static_buf->static_sem);
printk("all static buff in use!\n");
goto original;
}
bcm_static_buf->buf_use[i] = 1;
- up(&bcm_static_buf->static_sem);
+ mutex_unlock(&bcm_static_buf->static_sem);
bzero(bcm_static_buf->buf_ptr+STATIC_BUF_SIZE*i, size);
if (osh)
@@ -518,9 +519,9 @@ osl_mfree(osl_t *osh, void *addr, uint size)
buf_idx = ((unsigned char *)addr - bcm_static_buf->buf_ptr)/STATIC_BUF_SIZE;
- down(&bcm_static_buf->static_sem);
+ mutex_lock(&bcm_static_buf->static_sem);
bcm_static_buf->buf_use[buf_idx] = 0;
- up(&bcm_static_buf->static_sem);
+ mutex_unlock(&bcm_static_buf->static_sem);
if (osh) {
ASSERT(osh->magic == OS_HANDLE_MAGIC);