diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-07-26 11:48:49 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-07-26 11:48:49 -0400 |
commit | c3cc99ff5d24e2eeaf7ec2032e720681916990e3 (patch) | |
tree | c3e74171bbbd2adde9d60b9db1c440415c8d2831 /drivers/base/firmware_class.c | |
parent | 38ffbe66d59051fd9cfcfc8545f164700e2fa3bc (diff) | |
parent | 024e8ac04453b3525448c31ef39848cf675ba6db (diff) |
Merge branch 'linus' into x86/xen
Diffstat (limited to 'drivers/base/firmware_class.c')
-rw-r--r-- | drivers/base/firmware_class.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c index b0be1d18fee2..c9c92b00fd55 100644 --- a/drivers/base/firmware_class.c +++ b/drivers/base/firmware_class.c | |||
@@ -184,7 +184,7 @@ firmware_data_read(struct kobject *kobj, struct bin_attribute *bin_attr, | |||
184 | struct device *dev = to_dev(kobj); | 184 | struct device *dev = to_dev(kobj); |
185 | struct firmware_priv *fw_priv = dev_get_drvdata(dev); | 185 | struct firmware_priv *fw_priv = dev_get_drvdata(dev); |
186 | struct firmware *fw; | 186 | struct firmware *fw; |
187 | ssize_t ret_count = count; | 187 | ssize_t ret_count; |
188 | 188 | ||
189 | mutex_lock(&fw_lock); | 189 | mutex_lock(&fw_lock); |
190 | fw = fw_priv->fw; | 190 | fw = fw_priv->fw; |
@@ -192,14 +192,8 @@ firmware_data_read(struct kobject *kobj, struct bin_attribute *bin_attr, | |||
192 | ret_count = -ENODEV; | 192 | ret_count = -ENODEV; |
193 | goto out; | 193 | goto out; |
194 | } | 194 | } |
195 | if (offset > fw->size) { | 195 | ret_count = memory_read_from_buffer(buffer, count, &offset, |
196 | ret_count = 0; | 196 | fw->data, fw->size); |
197 | goto out; | ||
198 | } | ||
199 | if (offset + ret_count > fw->size) | ||
200 | ret_count = fw->size - offset; | ||
201 | |||
202 | memcpy(buffer, fw->data + offset, ret_count); | ||
203 | out: | 197 | out: |
204 | mutex_unlock(&fw_lock); | 198 | mutex_unlock(&fw_lock); |
205 | return ret_count; | 199 | return ret_count; |