Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9ac162521cd9796f44d263a61090634844c719a6
Commit:     9ac162521cd9796f44d263a61090634844c719a6
Parent:     1c6b4aa94576eee6dec3b8011f60d7f666db90b0
Author:     Matthias Kaehlcke <[EMAIL PROTECTED]>
AuthorDate: Sun Jul 15 23:39:49 2007 -0700
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Mon Jul 16 09:05:41 2007 -0700

    Use mutexes instead of semaphores in I2O driver
    
    The I2O driver uses two semaphores as mutexes.  Use the mutex API instead of
    the (binary) semaphores.
    
    Signed-off-by: Matthias Kaehlcke <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 drivers/message/i2o/device.c   |   16 ++++++++--------
 drivers/message/i2o/exec-osm.c |    4 ++--
 drivers/message/i2o/iop.c      |    2 +-
 include/linux/i2o.h            |    5 +++--
 4 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/drivers/message/i2o/device.c b/drivers/message/i2o/device.c
index 611adc3..489d7c5 100644
--- a/drivers/message/i2o/device.c
+++ b/drivers/message/i2o/device.c
@@ -62,7 +62,7 @@ int i2o_device_claim(struct i2o_device *dev)
 {
        int rc = 0;
 
-       down(&dev->lock);
+       mutex_lock(&dev->lock);
 
        rc = i2o_device_issue_claim(dev, I2O_CMD_UTIL_CLAIM, I2O_CLAIM_PRIMARY);
        if (!rc)
@@ -72,7 +72,7 @@ int i2o_device_claim(struct i2o_device *dev)
                pr_debug("i2o: claim of device %d failed %d\n",
                         dev->lct_data.tid, rc);
 
-       up(&dev->lock);
+       mutex_unlock(&dev->lock);
 
        return rc;
 }
@@ -96,7 +96,7 @@ int i2o_device_claim_release(struct i2o_device *dev)
        int tries;
        int rc = 0;
 
-       down(&dev->lock);
+       mutex_lock(&dev->lock);
 
        /*
         *      If the controller takes a nonblocking approach to
@@ -118,7 +118,7 @@ int i2o_device_claim_release(struct i2o_device *dev)
                pr_debug("i2o: claim release of device %d failed %d\n",
                         dev->lct_data.tid, rc);
 
-       up(&dev->lock);
+       mutex_unlock(&dev->lock);
 
        return rc;
 }
@@ -198,7 +198,7 @@ static struct i2o_device *i2o_device_alloc(void)
                return ERR_PTR(-ENOMEM);
 
        INIT_LIST_HEAD(&dev->list);
-       init_MUTEX(&dev->lock);
+       mutex_init(&dev->lock);
 
        dev->device.bus = &i2o_bus_type;
        dev->device.release = &i2o_device_release;
@@ -326,7 +326,7 @@ int i2o_device_parse_lct(struct i2o_controller *c)
        u16 table_size;
        u32 buf;
 
-       down(&c->lct_lock);
+       mutex_lock(&c->lct_lock);
 
        kfree(c->lct);
 
@@ -335,7 +335,7 @@ int i2o_device_parse_lct(struct i2o_controller *c)
 
        lct = c->lct = kmalloc(table_size * 4, GFP_KERNEL);
        if (!lct) {
-               up(&c->lct_lock);
+               mutex_unlock(&c->lct_lock);
                return -ENOMEM;
        }
 
@@ -408,7 +408,7 @@ int i2o_device_parse_lct(struct i2o_controller *c)
                        i2o_device_remove(dev);
        }
 
-       up(&c->lct_lock);
+       mutex_unlock(&c->lct_lock);
 
        return 0;
 }
diff --git a/drivers/message/i2o/exec-osm.c b/drivers/message/i2o/exec-osm.c
index 5278aad..c13b932 100644
--- a/drivers/message/i2o/exec-osm.c
+++ b/drivers/message/i2o/exec-osm.c
@@ -537,7 +537,7 @@ static int i2o_exec_lct_notify(struct i2o_controller *c, 
u32 change_ind)
        struct device *dev;
        struct i2o_message *msg;
 
-       down(&c->lct_lock);
+       mutex_lock(&c->lct_lock);
 
        dev = &c->pdev->dev;
 
@@ -561,7 +561,7 @@ static int i2o_exec_lct_notify(struct i2o_controller *c, 
u32 change_ind)
 
        i2o_msg_post(c, msg);
 
-       up(&c->lct_lock);
+       mutex_unlock(&c->lct_lock);
 
        return 0;
 };
diff --git a/drivers/message/i2o/iop.c b/drivers/message/i2o/iop.c
index 3305c12..a1ec16a 100644
--- a/drivers/message/i2o/iop.c
+++ b/drivers/message/i2o/iop.c
@@ -1067,7 +1067,7 @@ struct i2o_controller *i2o_iop_alloc(void)
 
        INIT_LIST_HEAD(&c->devices);
        spin_lock_init(&c->lock);
-       init_MUTEX(&c->lct_lock);
+       mutex_init(&c->lct_lock);
 
        device_initialize(&c->device);
 
diff --git a/include/linux/i2o.h b/include/linux/i2o.h
index 52f53e2..333a370 100644
--- a/include/linux/i2o.h
+++ b/include/linux/i2o.h
@@ -31,6 +31,7 @@
 #include <linux/slab.h>
 #include <linux/workqueue.h>   /* work_struct */
 #include <linux/mempool.h>
+#include <linux/mutex.h>
 
 #include <asm/io.h>
 #include <asm/semaphore.h>     /* Needed for MUTEX init macros */
@@ -425,7 +426,7 @@ struct i2o_device {
 
        struct device device;
 
-       struct semaphore lock;  /* device lock */
+       struct mutex lock;      /* device lock */
 };
 
 /*
@@ -544,7 +545,7 @@ struct i2o_controller {
        struct i2o_dma hrt;     /* HW Resource Table */
        i2o_lct *lct;           /* Logical Config Table */
        struct i2o_dma dlct;    /* Temp LCT */
-       struct semaphore lct_lock;      /* Lock for LCT updates */
+       struct mutex lct_lock;  /* Lock for LCT updates */
        struct i2o_dma status_block;    /* IOP status block */
 
        struct i2o_io base;     /* controller messaging unit */
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to