|
@@ -507,11 +507,6 @@ static ssize_t read_packet_data(char *buffer, loff_t pos, size_t count)
|
|
|
|
|
|
static ssize_t read_rbu_mono_data(char *buffer, loff_t pos, size_t count)
|
|
|
{
|
|
|
- unsigned char *ptemp = NULL;
|
|
|
- size_t bytes_left = 0;
|
|
|
- size_t data_length = 0;
|
|
|
- ssize_t ret_count = 0;
|
|
|
-
|
|
|
/* check to see if we have something to return */
|
|
|
if ((rbu_data.image_update_buffer == NULL) ||
|
|
|
(rbu_data.bios_image_size == 0)) {
|
|
@@ -519,28 +514,11 @@ static ssize_t read_rbu_mono_data(char *buffer, loff_t pos, size_t count)
|
|
|
"bios_image_size %lu\n",
|
|
|
rbu_data.image_update_buffer,
|
|
|
rbu_data.bios_image_size);
|
|
|
- ret_count = -ENOMEM;
|
|
|
- goto read_rbu_data_exit;
|
|
|
- }
|
|
|
-
|
|
|
- if (pos > rbu_data.bios_image_size) {
|
|
|
- ret_count = 0;
|
|
|
- goto read_rbu_data_exit;
|
|
|
+ return -ENOMEM;
|
|
|
}
|
|
|
|
|
|
- bytes_left = rbu_data.bios_image_size - pos;
|
|
|
- data_length = min(bytes_left, count);
|
|
|
-
|
|
|
- ptemp = rbu_data.image_update_buffer;
|
|
|
- memcpy(buffer, (ptemp + pos), data_length);
|
|
|
-
|
|
|
- if ((pos + count) > rbu_data.bios_image_size)
|
|
|
- /* this was the last copy */
|
|
|
- ret_count = bytes_left;
|
|
|
- else
|
|
|
- ret_count = count;
|
|
|
- read_rbu_data_exit:
|
|
|
- return ret_count;
|
|
|
+ return memory_read_from_buffer(buffer, count, &pos,
|
|
|
+ rbu_data.image_update_buffer, rbu_data.bios_image_size);
|
|
|
}
|
|
|
|
|
|
static ssize_t read_rbu_data(struct kobject *kobj,
|