diff options
Diffstat (limited to 'drivers/base/firmware_class.c')
-rw-r--r-- | drivers/base/firmware_class.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c index fc466531260e..7376367bcb80 100644 --- a/drivers/base/firmware_class.c +++ b/drivers/base/firmware_class.c | |||
@@ -180,7 +180,6 @@ static ssize_t firmware_loading_store(struct device *dev, | |||
180 | goto err; | 180 | goto err; |
181 | } | 181 | } |
182 | /* Pages will be freed by vfree() */ | 182 | /* Pages will be freed by vfree() */ |
183 | fw_priv->pages = NULL; | ||
184 | fw_priv->page_array_size = 0; | 183 | fw_priv->page_array_size = 0; |
185 | fw_priv->nr_pages = 0; | 184 | fw_priv->nr_pages = 0; |
186 | complete(&fw_priv->completion); | 185 | complete(&fw_priv->completion); |
@@ -217,8 +216,10 @@ firmware_data_read(struct kobject *kobj, struct bin_attribute *bin_attr, | |||
217 | ret_count = -ENODEV; | 216 | ret_count = -ENODEV; |
218 | goto out; | 217 | goto out; |
219 | } | 218 | } |
220 | if (offset > fw->size) | 219 | if (offset > fw->size) { |
221 | return 0; | 220 | ret_count = 0; |
221 | goto out; | ||
222 | } | ||
222 | if (count > fw->size - offset) | 223 | if (count > fw->size - offset) |
223 | count = fw->size - offset; | 224 | count = fw->size - offset; |
224 | 225 | ||