drivers/base: Convert dev->sem to mutex
authorThomas Gleixner <tglx@linutronix.de>
Fri, 29 Jan 2010 20:39:02 +0000 (20:39 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 21 May 2010 16:37:30 +0000 (09:37 -0700)
The semaphore is semantically a mutex. Convert it to a real mutex and
fix up a few places where code was relying on semaphore.h to be included
by device.h, as well as the users of the trylock function, as that value
is now reversed.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/base/core.c
drivers/net/mlx4/mlx4.h
drivers/staging/comedi/drivers/quatech_daqp_cs.c
drivers/usb/core/usb.c
include/linux/device.h

index e11c8c3e74165cc172b6ad55fcf1e4fa2548998a..cf507a7d200ce34326e091cbbda82c8b30e73543 100644 (file)
@@ -20,7 +20,6 @@
 #include <linux/notifier.h>
 #include <linux/genhd.h>
 #include <linux/kallsyms.h>
-#include <linux/semaphore.h>
 #include <linux/mutex.h>
 #include <linux/async.h>
 
@@ -559,7 +558,7 @@ void device_initialize(struct device *dev)
        dev->kobj.kset = devices_kset;
        kobject_init(&dev->kobj, &device_ktype);
        INIT_LIST_HEAD(&dev->dma_pools);
-       init_MUTEX(&dev->sem);
+       mutex_init(&dev->mutex);
        spin_lock_init(&dev->devres_lock);
        INIT_LIST_HEAD(&dev->devres_head);
        device_pm_init(dev);
index bc72d6e4919b8542b0721b797edd67560e31fb86..13343e8849997d46b0b408e81b7b629f97be9528 100644 (file)
@@ -40,6 +40,7 @@
 #include <linux/mutex.h>
 #include <linux/radix-tree.h>
 #include <linux/timer.h>
+#include <linux/semaphore.h>
 #include <linux/workqueue.h>
 
 #include <linux/mlx4/device.h>
index 1786db2f3378ec0e76f418c522e7951f76385525..8b274b70825953382d19539e9f0fbec194104db8 100644 (file)
@@ -48,6 +48,7 @@ Devices: [Quatech] DAQP-208 (daqp), DAQP-308
 */
 
 #include "../comedidev.h"
+#include <linux/semaphore.h>
 
 #include <pcmcia/cs_types.h>
 #include <pcmcia/cs.h>
index 397b678f1c479f577d4f6e8f61426e8c90e60e36..5ae14f6c1e7aca6ecbb860ce795bc4cd8ea1a6d8 100644 (file)
@@ -573,7 +573,7 @@ int usb_lock_device_for_reset(struct usb_device *udev,
                        iface->condition == USB_INTERFACE_UNBOUND))
                return -EINTR;
 
-       while (usb_trylock_device(udev) != 0) {
+       while (!usb_trylock_device(udev)) {
 
                /* If we can't acquire the lock after waiting one second,
                 * we're probably deadlocked */
index 241b96bcd7ad252c223e264e5b5ce8de09c6e528..6f9619190aafb70f5c3135ff14632080b81ac8fc 100644 (file)
@@ -22,7 +22,6 @@
 #include <linux/types.h>
 #include <linux/module.h>
 #include <linux/pm.h>
-#include <linux/semaphore.h>
 #include <asm/atomic.h>
 #include <asm/device.h>
 
@@ -404,7 +403,7 @@ struct device {
        const char              *init_name; /* initial name of the device */
        struct device_type      *type;
 
-       struct semaphore        sem;    /* semaphore to synchronize calls to
+       struct mutex            mutex;  /* mutex to synchronize calls to
                                         * its driver.
                                         */
 
@@ -514,17 +513,17 @@ static inline bool device_async_suspend_enabled(struct device *dev)
 
 static inline void device_lock(struct device *dev)
 {
-       down(&dev->sem);
+       mutex_lock(&dev->mutex);
 }
 
 static inline int device_trylock(struct device *dev)
 {
-       return down_trylock(&dev->sem);
+       return mutex_trylock(&dev->mutex);
 }
 
 static inline void device_unlock(struct device *dev)
 {
-       up(&dev->sem);
+       mutex_unlock(&dev->mutex);
 }
 
 void driver_init(void);