From: Matthias Kaehlcke Date: Fri, 15 Feb 2008 19:56:59 +0000 (+0100) Subject: prism54: Convert stats_sem in a mutex X-Git-Tag: v2.6.26-rc1~1138^2~530^2~53 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=f8139218b32e9a68fc6779fa0ce45c5078c23c8a;p=linux-2.6-omap-h63xx.git 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 Acked-by: Luis R. Rodriguez Signed-off-by: John W. Linville --- diff --git a/drivers/net/wireless/prism54/isl_ioctl.c b/drivers/net/wireless/prism54/isl_ioctl.c index df1594ea942..3fb6a7b5403 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 dbb538ccb4e..eb7c1c6bcd8 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 b03a2ab0009..85ddf89967a 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.