aboutsummaryrefslogtreecommitdiffstats
path: root/driver
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2006-05-30 15:15:43 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2006-05-30 15:15:43 -0700
commite3e7920a4ec4c32af4c772be5e2cdb45798fcbea (patch)
tree9f37f7a56cb3f021e650a5deaaec1e666a43c165 /driver
parentbe7d6842f303fbe0712e637128399fd333662a8c (diff)
downloadpatches-e3e7920a4ec4c32af4c772be5e2cdb45798fcbea.tar.gz
more patches added
Diffstat (limited to 'driver')
-rw-r--r--driver/firmware_class-s-semaphores-mutexes.patch110
1 files changed, 110 insertions, 0 deletions
diff --git a/driver/firmware_class-s-semaphores-mutexes.patch b/driver/firmware_class-s-semaphores-mutexes.patch
new file mode 100644
index 00000000000000..e48e1f11ae43d8
--- /dev/null
+++ b/driver/firmware_class-s-semaphores-mutexes.patch
@@ -0,0 +1,110 @@
+From linux-kernel-owner+greg=40kroah.com-S1751168AbWEWVWk@vger.kernel.org Tue May 23 14:24:32 2006
+Message-ID: <4a192fd60605231422i76361d3ag5ee650d012e8720c@mail.gmail.com>
+Date: Tue, 23 May 2006 23:22:38 +0200
+From: "Laura Garcia" <nevola@gmail.com>
+Subject: firmware_class: s/semaphores/mutexes
+Content-Disposition: inline
+
+Hi, this patch converts semaphores to mutexes for Randy's firmware_class.
+
+Signed-off-by: Laura Garcia Liebana <nevola@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/base/firmware_class.c | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+--- gregkh-2.6.orig/drivers/base/firmware_class.c
++++ gregkh-2.6/drivers/base/firmware_class.c
+@@ -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 @@ static int loading_timeout = 10; /* In s
+
+ /* 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 @@ firmware_loading_store(struct class_devi
+
+ 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 @@ firmware_loading_store(struct class_devi
+ 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 @@ firmware_data_read(struct kobject *kobj,
+ 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 @@ firmware_data_read(struct kobject *kobj,
+
+ memcpy(buffer, fw->data + offset, ret_count);
+ out:
+- up(&fw_lock);
++ mutex_unlock(&fw_lock);
+ return ret_count;
+ }
+
+@@ -253,7 +253,7 @@ firmware_data_write(struct kobject *kobj
+ 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 @@ firmware_data_write(struct kobject *kobj
+ 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 @@ _request_firmware(const struct firmware
+ } 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;
+