From 7e325e2108139932a8dc4847e8ed0adfcd728991 Mon Sep 17 00:00:00 2001 From: Akinobu Mita Date: Fri, 25 Jul 2008 01:48:23 -0700 Subject: [PATCH] --- yaml --- r: 105992 b: refs/heads/master c: f37e66173e0cc09b4e5a89eb0294abbefc15f435 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/base/firmware_class.c | 12 +++--------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/[refs] b/[refs] index 25443d63e437..b724603095ee 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ec905a18656daa4d9300bad2bebc02d5dba7883d +refs/heads/master: f37e66173e0cc09b4e5a89eb0294abbefc15f435 diff --git a/trunk/drivers/base/firmware_class.c b/trunk/drivers/base/firmware_class.c index b0be1d18fee2..c9c92b00fd55 100644 --- a/trunk/drivers/base/firmware_class.c +++ b/trunk/drivers/base/firmware_class.c @@ -184,7 +184,7 @@ firmware_data_read(struct kobject *kobj, struct bin_attribute *bin_attr, 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; @@ -192,14 +192,8 @@ firmware_data_read(struct kobject *kobj, struct bin_attribute *bin_attr, 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;