[PATCH] firmware_class: s/semaphores/mutexes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi, this patch converts semaphores to mutexes for Randy's firmware_class.

Signed-off-by: Laura Garcia Liebana <[email protected]>

diff -Nru a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c
--- a/drivers/base/firmware_class.c  2006-05-23 21:58:39.000000000 +0200
+++ b/drivers/base/firmware_class.c       2006-05-23 22:15:27.000000000 +0200
@@ -15,7 +15,7 @@
#include <linux/vmalloc.h>
#include <linux/interrupt.h>
#include <linux/bitops.h>
-#include <asm/semaphore.h>
+#include <linux/mutex.h>

#include <linux/firmware.h>
#include "base.h"
@@ -36,7 +36,7 @@

/* fw_lock could be moved to 'struct firmware_priv' but since it is just
 * guarding for corner cases a global lock should be OK */
-static DECLARE_MUTEX(fw_lock);
+static DEFINE_MUTEX(fw_lock);

struct firmware_priv {
       char fw_id[FIRMWARE_NAME_MAX];
@@ -142,9 +142,9 @@

       switch (loading) {
       case 1:
-               down(&fw_lock);
+               mutex_lock(&fw_lock);
               if (!fw_priv->fw) {
-                       up(&fw_lock);
+                       mutex_unlock(&fw_lock);
                       break;
               }
               vfree(fw_priv->fw->data);
@@ -152,7 +152,7 @@
               fw_priv->fw->size = 0;
               fw_priv->alloc_size = 0;
               set_bit(FW_STATUS_LOADING, &fw_priv->status);
-               up(&fw_lock);
+               mutex_unlock(&fw_lock);
               break;
       case 0:
               if (test_bit(FW_STATUS_LOADING, &fw_priv->status)) {
@@ -185,7 +185,7 @@
       struct firmware *fw;
       ssize_t ret_count = count;

-       down(&fw_lock);
+       mutex_lock(&fw_lock);
       fw = fw_priv->fw;
       if (!fw || test_bit(FW_STATUS_DONE, &fw_priv->status)) {
               ret_count = -ENODEV;
@@ -200,7 +200,7 @@

       memcpy(buffer, fw->data + offset, ret_count);
out:
-       up(&fw_lock);
+       mutex_unlock(&fw_lock);
       return ret_count;
}

@@ -253,7 +253,7 @@
       if (!capable(CAP_SYS_RAWIO))
               return -EPERM;

-       down(&fw_lock);
+       mutex_lock(&fw_lock);
       fw = fw_priv->fw;
       if (!fw || test_bit(FW_STATUS_DONE, &fw_priv->status)) {
               retval = -ENODEV;
@@ -268,7 +268,7 @@
       fw->size = max_t(size_t, offset + count, fw->size);
       retval = count;
out:
-       up(&fw_lock);
+       mutex_unlock(&fw_lock);
       return retval;
}

@@ -436,14 +436,14 @@
       } else
               wait_for_completion(&fw_priv->completion);

-       down(&fw_lock);
+       mutex_lock(&fw_lock);
       if (!fw_priv->fw->size || test_bit(FW_STATUS_ABORT, &fw_priv->status)) {
               retval = -ENOENT;
               release_firmware(fw_priv->fw);
               *firmware_p = NULL;
       }
       fw_priv->fw = NULL;
-       up(&fw_lock);
+       mutex_unlock(&fw_lock);
       class_device_unregister(class_dev);
       goto out;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux