diff options
author | Pavel Roskin <proski@gnu.org> | 2007-05-01 20:01:07 -0400 |
---|---|---|
committer | Guido Guenther <agx@bogon.sigxcpu.org> | 2007-05-02 11:22:18 +0200 |
commit | c360795bda2df2260b2b8a459087c9e37ef17266 (patch) | |
tree | dbf971bc643dddbe1a41945905330612aa375eb9 | |
parent | b74a15493e90d141947df9d8c6755788fa8ffb96 (diff) |
[PATCH] Replace semaphores with mutexes
Semaphores are overkill for simple locking.
Signed-off-by: Pavel Roskin <proski@gnu.org>
-rw-r--r-- | at76_usb.c | 60 | ||||
-rw-r--r-- | at76_usb.h | 2 |
2 files changed, 31 insertions, 31 deletions
@@ -2288,7 +2288,7 @@ static void at76_work_assoc_done(struct work_struct *work) struct at76_priv *priv = container_of(work, struct at76_priv, work_assoc_done); - down(&priv->sem); + mutex_lock(&priv->mtx); at76_assert(priv->istate == ASSOCIATING || priv->istate == REASSOCIATING); if (priv->iw_mode == IW_MODE_INFRA) { @@ -2323,7 +2323,7 @@ static void at76_work_assoc_done(struct work_struct *work) at76_dbg(DBG_PROGRESS, "%s: connected to BSSID %s", priv->netdev->name, mac2str(priv->curr_bss->bssid)); - up(&priv->sem); + mutex_unlock(&priv->mtx); } @@ -4033,7 +4033,7 @@ static int at76_open(struct net_device *netdev) at76_dbg(DBG_PROC_ENTRY, "at76_open entry"); - if (down_interruptible(&priv->sem)) + if (mutex_lock_interruptible(&priv->mtx)) return -EINTR; /* if netdev->dev_addr != priv->mac_addr we must @@ -4062,7 +4062,7 @@ static int at76_open(struct net_device *netdev) at76_dbg(DBG_PROC_ENTRY, "at76_open end"); err: - up(&priv->sem); + mutex_unlock(&priv->mtx); return ret < 0 ? ret : 0; } @@ -4074,7 +4074,7 @@ static int at76_stop(struct net_device *netdev) at76_dbg(DBG_DEVSTART, "%s: ENTER", __FUNCTION__); - if (down_interruptible(&priv->sem)) + if (mutex_lock_interruptible(&priv->mtx)) return -EINTR; netif_stop_queue(netdev); @@ -4107,7 +4107,7 @@ static int at76_stop(struct net_device *netdev) at76_assert(priv->open_count > 0); priv->open_count--; - up(&priv->sem); + mutex_unlock(&priv->mtx); at76_dbg(DBG_DEVSTART, "%s: EXIT", __FUNCTION__); return 0; @@ -4271,7 +4271,7 @@ static void at76_work_external_fw(struct work_struct *work) int ret; u8 op_mode; - down(&priv->sem); + mutex_lock(&priv->mtx); op_mode = at76_get_op_mode(priv->udev); at76_dbg(DBG_DEVSTART, "opmode %d", op_mode); @@ -4290,7 +4290,7 @@ static void at76_work_external_fw(struct work_struct *work) } if (priv->board_type == BOARDTYPE_505A_RFMD_2958) { info("200 ms delay for board type 7"); - /* can we do this with priv->sem down? */ + /* can we do this with priv->mtx down? */ set_current_state(TASK_INTERRUPTIBLE); schedule_timeout(HZ / 5 + 1); } @@ -4300,7 +4300,7 @@ static void at76_work_external_fw(struct work_struct *work) err("Downloading external firmware failed: %d", ret); end_external_fw: - up(&priv->sem); + mutex_unlock(&priv->mtx); } @@ -4311,7 +4311,7 @@ static void at76_work_internal_fw(struct work_struct *work) work_internal_fw); int ret; - down(&priv->sem); + mutex_lock(&priv->mtx); ret = at76_usbdfu_download(priv->udev, priv->intfw, priv->intfw_size, @@ -4337,7 +4337,7 @@ static void at76_work_internal_fw(struct work_struct *work) mod_timer(&priv->fw_dl_timer, jiffies + 2 * HZ + 1); end_internal_fw: - up(&priv->sem); + mutex_unlock(&priv->mtx); } @@ -4475,7 +4475,7 @@ static void at76_work_join(struct work_struct *work) int ret; unsigned long flags; - down(&priv->sem); + mutex_lock(&priv->mtx); if (priv->istate == INIT) goto end_join; @@ -4547,7 +4547,7 @@ static void at76_work_join(struct work_struct *work) schedule_work(&priv->work_scan); end_join: - up(&priv->sem); + mutex_unlock(&priv->mtx); } @@ -4556,9 +4556,9 @@ static void at76_work_mgmt_timeout(struct work_struct *work) struct at76_priv *priv = container_of(work, struct at76_priv, work_mgmt_timeout); - down(&priv->sem); + mutex_lock(&priv->mtx); at76_handle_mgmt_timeout(priv); - up(&priv->sem); + mutex_unlock(&priv->mtx); } @@ -4570,7 +4570,7 @@ static void at76_work_new_bss(struct work_struct *work) struct net_device *netdev = priv->netdev; struct mib_mac_mgmt mac_mgmt; - down(&priv->sem); + mutex_lock(&priv->mtx); ret = at76_get_mib(priv->udev, MIB_MAC_MGMT, &mac_mgmt, sizeof(struct mib_mac_mgmt)); @@ -4594,7 +4594,7 @@ static void at76_work_new_bss(struct work_struct *work) err("%s: set_mib (ibss change ok) failed: %d", netdev->name, ret); new_bss_clean: - up(&priv->sem); + mutex_unlock(&priv->mtx); } @@ -4603,10 +4603,10 @@ static void at76_work_reset_device(struct work_struct *work) struct at76_priv *priv = container_of(work, struct at76_priv, work_reset_device); - down(&priv->sem); + mutex_lock(&priv->mtx); usb_reset_device(priv->udev); priv->istate = WAIT_FOR_DISCONNECT; - up(&priv->sem); + mutex_unlock(&priv->mtx); } @@ -4758,7 +4758,7 @@ static void at76_work_restart(struct work_struct *work) struct at76_priv *priv = container_of(work, struct at76_priv, work_restart); - down(&priv->sem); + mutex_lock(&priv->mtx); at76_startup_device(priv); at76_set_monitor_mode(priv); @@ -4778,7 +4778,7 @@ static void at76_work_restart(struct work_struct *work) jiffies + SCAN_POLL_INTERVAL); } - up(&priv->sem); + mutex_unlock(&priv->mtx); } @@ -4788,7 +4788,7 @@ static void at76_work_scan(struct work_struct *work) work_scan); int ret; - down(&priv->sem); + mutex_lock(&priv->mtx); at76_assert(priv->istate == SCANNING); /* only clear the bss list when a scan is actively initiated, @@ -4806,7 +4806,7 @@ static void at76_work_scan(struct work_struct *work) mod_timer(&priv->mgmt_timer, jiffies + SCAN_POLL_INTERVAL); } - up(&priv->sem); + mutex_unlock(&priv->mtx); } @@ -4816,7 +4816,7 @@ static void at76_work_set_promisc(struct work_struct *work) work_set_promisc); int ret = 0; - down(&priv->sem); + mutex_lock(&priv->mtx); memset(&priv->mib_buf, 0, sizeof(struct set_mib_buffer)); priv->mib_buf.type = MIB_LOCAL; @@ -4829,7 +4829,7 @@ static void at76_work_set_promisc(struct work_struct *work) priv->netdev->name, ret); } - up(&priv->sem); + mutex_unlock(&priv->mtx); } @@ -4839,7 +4839,7 @@ static void at76_work_start_ibss(struct work_struct *work) work_start_ibss); int ret; - down(&priv->sem); + mutex_lock(&priv->mtx); at76_assert(priv->istate == STARTIBSS); ret = at76_start_ibss(priv); @@ -4878,7 +4878,7 @@ static void at76_work_start_ibss(struct work_struct *work) netif_start_queue(priv->netdev); end_startibss: - up(&priv->sem); + mutex_unlock(&priv->mtx); } @@ -4887,9 +4887,9 @@ static void at76_work_submit_rx(struct work_struct *work) struct at76_priv *priv = container_of(work, struct at76_priv, work_submit_rx); - down(&priv->sem); + mutex_lock(&priv->mtx); at76_submit_rx_urb(priv); - up(&priv->sem); + mutex_unlock(&priv->mtx); } @@ -6097,7 +6097,7 @@ static struct at76_priv *at76_alloc_new_device(struct usb_device *udev, priv->udev = udev; priv->netdev = netdev; - init_MUTEX(&priv->sem); + mutex_init(&priv->mtx); INIT_WORK(&priv->work_assoc_done, at76_work_assoc_done); INIT_WORK(&priv->work_external_fw, at76_work_external_fw); INIT_WORK(&priv->work_internal_fw, at76_work_internal_fw); @@ -466,7 +466,7 @@ struct at76_priv { __u8 bulk_out_endpointAddr; /* the address of the bulk out endpoint */ int open_count; /* number of times this port has been opened */ - struct semaphore sem; /* locks this structure */ + struct mutex mtx; /* locks this structure */ /* work queues */ struct work_struct work_assoc_done; |