Commit b3dc9088 authored by Akinobu Mita's avatar Akinobu Mita Committed by James Bottomley

[SCSI] qla2xxx: use memory_read_from_buffer()

Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarAndrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
parent 8201e207
...@@ -20,18 +20,12 @@ qla2x00_sysfs_read_fw_dump(struct kobject *kobj, ...@@ -20,18 +20,12 @@ qla2x00_sysfs_read_fw_dump(struct kobject *kobj,
{ {
struct scsi_qla_host *ha = shost_priv(dev_to_shost(container_of(kobj, struct scsi_qla_host *ha = shost_priv(dev_to_shost(container_of(kobj,
struct device, kobj))); struct device, kobj)));
char *rbuf = (char *)ha->fw_dump;
if (ha->fw_dump_reading == 0) if (ha->fw_dump_reading == 0)
return 0; return 0;
if (off > ha->fw_dump_len)
return 0;
if (off + count > ha->fw_dump_len)
count = ha->fw_dump_len - off;
memcpy(buf, &rbuf[off], count); return memory_read_from_buffer(buf, count, &off, ha->fw_dump,
ha->fw_dump_len);
return (count);
} }
static ssize_t static ssize_t
...@@ -94,20 +88,13 @@ qla2x00_sysfs_read_nvram(struct kobject *kobj, ...@@ -94,20 +88,13 @@ qla2x00_sysfs_read_nvram(struct kobject *kobj,
{ {
struct scsi_qla_host *ha = shost_priv(dev_to_shost(container_of(kobj, struct scsi_qla_host *ha = shost_priv(dev_to_shost(container_of(kobj,
struct device, kobj))); struct device, kobj)));
int size = ha->nvram_size;
char *nvram_cache = ha->nvram;
if (!capable(CAP_SYS_ADMIN) || off > size || count == 0) if (!capable(CAP_SYS_ADMIN))
return 0; return 0;
if (off + count > size) {
size -= off;
count = size;
}
/* Read NVRAM data from cache. */ /* Read NVRAM data from cache. */
memcpy(buf, &nvram_cache[off], count); return memory_read_from_buffer(buf, count, &off, ha->nvram,
ha->nvram_size);
return count;
} }
static ssize_t static ssize_t
...@@ -175,14 +162,9 @@ qla2x00_sysfs_read_optrom(struct kobject *kobj, ...@@ -175,14 +162,9 @@ qla2x00_sysfs_read_optrom(struct kobject *kobj,
if (ha->optrom_state != QLA_SREADING) if (ha->optrom_state != QLA_SREADING)
return 0; return 0;
if (off > ha->optrom_region_size)
return 0;
if (off + count > ha->optrom_region_size)
count = ha->optrom_region_size - off;
memcpy(buf, &ha->optrom_buffer[off], count); return memory_read_from_buffer(buf, count, &off, ha->optrom_buffer,
ha->optrom_region_size);
return count;
} }
static ssize_t static ssize_t
...@@ -374,20 +356,12 @@ qla2x00_sysfs_read_vpd(struct kobject *kobj, ...@@ -374,20 +356,12 @@ qla2x00_sysfs_read_vpd(struct kobject *kobj,
{ {
struct scsi_qla_host *ha = shost_priv(dev_to_shost(container_of(kobj, struct scsi_qla_host *ha = shost_priv(dev_to_shost(container_of(kobj,
struct device, kobj))); struct device, kobj)));
int size = ha->vpd_size;
char *vpd_cache = ha->vpd;
if (!capable(CAP_SYS_ADMIN) || off > size || count == 0) if (!capable(CAP_SYS_ADMIN))
return 0; return 0;
if (off + count > size) {
size -= off;
count = size;
}
/* Read NVRAM data from cache. */ /* Read NVRAM data from cache. */
memcpy(buf, &vpd_cache[off], count); return memory_read_from_buffer(buf, count, &off, ha->vpd, ha->vpd_size);
return count;
} }
static ssize_t static ssize_t
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment