diff options
author | Matthias Kaehlcke <matthias@kaehlcke.net> | 2008-02-15 20:56:59 +0100 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-02-29 15:37:17 -0500 |
commit | f8139218b32e9a68fc6779fa0ce45c5078c23c8a (patch) | |
tree | a469cc72903dc998fce586e27fed863ea3c81449 | |
parent | 6f865c0ab9318cd4c357654e460cb4c9aaf23a92 (diff) | |
download | lwn-f8139218b32e9a68fc6779fa0ce45c5078c23c8a.tar.gz lwn-f8139218b32e9a68fc6779fa0ce45c5078c23c8a.zip |
prism54: Convert stats_sem in a mutex
The semaphore stats_sem is used as mutex, convert it to the mutex API
Signed-off-by: Matthias Kaehlcke <matthias@kaehlcke.net>
Acked-by: Luis R. Rodriguez <mcgrof@winlab.rutgers.edu>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/prism54/isl_ioctl.c | 8 | ||||
-rw-r--r-- | drivers/net/wireless/prism54/islpci_dev.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/prism54/islpci_dev.h | 2 |
3 files changed, 6 insertions, 6 deletions
diff --git a/drivers/net/wireless/prism54/isl_ioctl.c b/drivers/net/wireless/prism54/isl_ioctl.c index df1594ea942c..3fb6a7b54038 100644 --- a/drivers/net/wireless/prism54/isl_ioctl.c +++ b/drivers/net/wireless/prism54/isl_ioctl.c @@ -165,7 +165,7 @@ prism54_update_stats(struct work_struct *work) struct obj_bss bss, *bss2; union oid_res_t r; - down(&priv->stats_sem); + mutex_lock(&priv->stats_lock); /* Noise floor. * I'm not sure if the unit is dBm. @@ -207,7 +207,7 @@ prism54_update_stats(struct work_struct *work) mgt_get_request(priv, DOT11_OID_MPDUTXFAILED, 0, NULL, &r); priv->local_iwstatistics.discard.retries = r.u; - up(&priv->stats_sem); + mutex_unlock(&priv->stats_lock); return; } @@ -218,12 +218,12 @@ prism54_get_wireless_stats(struct net_device *ndev) islpci_private *priv = netdev_priv(ndev); /* If the stats are being updated return old data */ - if (down_trylock(&priv->stats_sem) == 0) { + if (mutex_trylock(&priv->stats_lock) == 0) { memcpy(&priv->iwstatistics, &priv->local_iwstatistics, sizeof (struct iw_statistics)); /* They won't be marked updated for the next time */ priv->local_iwstatistics.qual.updated = 0; - up(&priv->stats_sem); + mutex_unlock(&priv->stats_lock); } else priv->iwstatistics.qual.updated = 0; diff --git a/drivers/net/wireless/prism54/islpci_dev.c b/drivers/net/wireless/prism54/islpci_dev.c index dbb538ccb4ec..eb7c1c6bcd8a 100644 --- a/drivers/net/wireless/prism54/islpci_dev.c +++ b/drivers/net/wireless/prism54/islpci_dev.c @@ -864,7 +864,7 @@ islpci_setup(struct pci_dev *pdev) mutex_init(&priv->mgmt_lock); priv->mgmt_received = NULL; init_waitqueue_head(&priv->mgmt_wqueue); - sema_init(&priv->stats_sem, 1); + mutex_init(&priv->stats_lock); spin_lock_init(&priv->slock); /* init state machine with off#1 state */ diff --git a/drivers/net/wireless/prism54/islpci_dev.h b/drivers/net/wireless/prism54/islpci_dev.h index b03a2ab0009b..85ddf89967af 100644 --- a/drivers/net/wireless/prism54/islpci_dev.h +++ b/drivers/net/wireless/prism54/islpci_dev.h @@ -88,7 +88,7 @@ typedef struct { /* Take care of the wireless stats */ struct work_struct stats_work; - struct semaphore stats_sem; + struct mutex stats_lock; /* remember when we last updated the stats */ unsigned long stats_timestamp; /* The first is accessed under semaphore locking. |