Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[SCSI] qla2xxx: use memory_read_from_buffer()

parent 8201e207
Loading
Loading
Loading
Loading
+9 −35
Original line number Original line Diff line number Diff line
@@ -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 (count);
	return memory_read_from_buffer(buf, count, &off, ha->fw_dump,
					ha->fw_dump_len);
}
}


static ssize_t
static ssize_t
@@ -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,


	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,
{
{
	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