2008-02-15 19:57:17

by Matthias Kaehlcke

[permalink] [raw]
Subject: [patch 2/3] 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 <[email protected]>

Index: linux-2.6/drivers/net/wireless/prism54/isl_ioctl.c
===================================================================
--- linux-2.6.orig/drivers/net/wireless/prism54/isl_ioctl.c 2008-02-15 20:43:05.000000000 +0100
+++ linux-2.6/drivers/net/wireless/prism54/isl_ioctl.c 2008-02-15 20:44:03.000000000 +0100
@@ -165,7 +165,7 @@
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 @@
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 @@
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;

Index: linux-2.6/drivers/net/wireless/prism54/islpci_dev.c
===================================================================
--- linux-2.6.orig/drivers/net/wireless/prism54/islpci_dev.c 2008-02-15 20:42:15.000000000 +0100
+++ linux-2.6/drivers/net/wireless/prism54/islpci_dev.c 2008-02-15 20:44:03.000000000 +0100
@@ -864,7 +864,7 @@
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 */
Index: linux-2.6/drivers/net/wireless/prism54/islpci_dev.h
===================================================================
--- linux-2.6.orig/drivers/net/wireless/prism54/islpci_dev.h 2008-02-15 20:43:49.000000000 +0100
+++ linux-2.6/drivers/net/wireless/prism54/islpci_dev.h 2008-02-15 20:44:03.000000000 +0100
@@ -88,7 +88,7 @@

/* 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.

--
Matthias Kaehlcke
Linux System Developer
Barcelona

We build too many walls and not enough bridges
(Isaac Newton)
.''`.
using free software / Debian GNU/Linux | http://debian.org : :' :
`. `'`
gpg --keyserver pgp.mit.edu --recv-keys 47D8E5D4 `-


2008-02-15 21:55:30

by Luis R. Rodriguez

[permalink] [raw]
Subject: Re: [patch 2/3] Convert stats_sem in a mutex

On Fri, Feb 15, 2008 at 2:56 PM, <[email protected]> wrote:
> The semaphore stats_sem is used as mutex, convert it to the mutex API
>
> Signed-off-by: Matthias Kaehlcke <[email protected]>

Acked-by: Luis R. Rodriguez <[email protected]>

Thanks, BTW, for the next set you send please review the linux
wireless submitting patch guide. You just need to address the patch to
John, the maintainers and CC linux-wireless.

http://linuxwireless.org/en/developers/Documentation/SubmittingPatches

Luis