diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2006-05-30 15:15:43 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-05-30 15:15:43 -0700 |
commit | e3e7920a4ec4c32af4c772be5e2cdb45798fcbea (patch) | |
tree | 9f37f7a56cb3f021e650a5deaaec1e666a43c165 /driver | |
parent | be7d6842f303fbe0712e637128399fd333662a8c (diff) | |
download | patches-e3e7920a4ec4c32af4c772be5e2cdb45798fcbea.tar.gz |
more patches added
Diffstat (limited to 'driver')
-rw-r--r-- | driver/firmware_class-s-semaphores-mutexes.patch | 110 |
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; + |