Messages in this thread Patch in this message | | | Date | Wed, 04 Jun 2008 20:56:48 +0900 | From | Akinobu Mita <> | Subject | [patch -v3 15/22] firmware: use memory_read_from_buffer |
| |
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Cc: Greg Kroah-Hartman <greg@kroah.com> --- drivers/base/firmware_class.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-)
Index: 2.6-git/drivers/base/firmware_class.c =================================================================== --- 2.6-git.orig/drivers/base/firmware_class.c +++ 2.6-git/drivers/base/firmware_class.c @@ -17,6 +17,7 @@ #include <linux/bitops.h> #include <linux/mutex.h> #include <linux/kthread.h> +#include <linux/fs.h> #include <linux/firmware.h> #include "base.h" @@ -176,7 +177,7 @@ firmware_data_read(struct kobject *kobj, struct device *dev = to_dev(kobj); struct firmware_priv *fw_priv = dev_get_drvdata(dev); struct firmware *fw; - ssize_t ret_count = count; + ssize_t ret_count; mutex_lock(&fw_lock); fw = fw_priv->fw; @@ -184,14 +185,8 @@ firmware_data_read(struct kobject *kobj, ret_count = -ENODEV; goto out; } - if (offset > fw->size) { - ret_count = 0; - goto out; - } - if (offset + ret_count > fw->size) - ret_count = fw->size - offset; - - memcpy(buffer, fw->data + offset, ret_count); + ret_count = memory_read_from_buffer(buffer, count, &offset, + fw->data, fw->size); out: mutex_unlock(&fw_lock); return ret_count; --
| |