public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
* [patch -v3 21/22] ipr: use memory_read_from_buffer
       [not found] <20080604115633.116832712@gmail.com>
@ 2008-06-04 11:56 ` Akinobu Mita
  2008-06-04 11:56 ` [patch -v3 22/22] qla2xxx: " Akinobu Mita
  1 sibling, 0 replies; 3+ messages in thread
From: Akinobu Mita @ 2008-06-04 11:56 UTC (permalink / raw)
  To: linux-kernel, akpm; +Cc: Brian King, James E.J. Bottomley, linux-scsi

[-- Attachment #1: scsi-ipr-use-memory-read-from-buffer.patch --]
[-- Type: text/plain, Size: 1185 bytes --]

Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Brian King <brking@us.ibm.com>
Cc: James E.J. Bottomley <James.Bottomley@HansenPartnership.com>
Cc: linux-scsi@vger.kernel.org
---
 drivers/scsi/ipr.c |   16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

Index: 2.6-git/drivers/scsi/ipr.c
===================================================================
--- 2.6-git.orig/drivers/scsi/ipr.c
+++ 2.6-git/drivers/scsi/ipr.c
@@ -2455,20 +2455,14 @@ static ssize_t ipr_read_trace(struct kob
 	struct Scsi_Host *shost = class_to_shost(dev);
 	struct ipr_ioa_cfg *ioa_cfg = (struct ipr_ioa_cfg *)shost->hostdata;
 	unsigned long lock_flags = 0;
-	int size = IPR_TRACE_SIZE;
-	char *src = (char *)ioa_cfg->trace;
-
-	if (off > size)
-		return 0;
-	if (off + count > size) {
-		size -= off;
-		count = size;
-	}
+	ssize_t ret;
 
 	spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags);
-	memcpy(buf, &src[off], count);
+	ret = memory_read_from_buffer(buf, count, &off, ioa_cfg->trace,
+				IPR_TRACE_SIZE);
 	spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags);
-	return count;
+
+	return ret;
 }
 
 static struct bin_attribute ipr_trace_attr = {

-- 

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [patch -v3 22/22] qla2xxx: use memory_read_from_buffer
       [not found] <20080604115633.116832712@gmail.com>
  2008-06-04 11:56 ` [patch -v3 21/22] ipr: use memory_read_from_buffer Akinobu Mita
@ 2008-06-04 11:56 ` Akinobu Mita
  2008-06-06 17:06   ` Andrew Vasquez
  1 sibling, 1 reply; 3+ messages in thread
From: Akinobu Mita @ 2008-06-04 11:56 UTC (permalink / raw)
  To: linux-kernel, akpm; +Cc: Andrew Vasquez, James E.J. Bottomley, linux-scsi

[-- Attachment #1: scsi-qla2xxx-use-memory-read-from-buffer.patch --]
[-- Type: text/plain, Size: 2893 bytes --]

Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Andrew Vasquez <linux-driver@qlogic.com>
Cc: James E.J. Bottomley <James.Bottomley@HansenPartnership.com>
Cc: linux-scsi@vger.kernel.org
---
 drivers/scsi/qla2xxx/qla_attr.c |   45 ++++++++--------------------------------
 1 file changed, 10 insertions(+), 35 deletions(-)

Index: 2.6-git/drivers/scsi/qla2xxx/qla_attr.c
===================================================================
--- 2.6-git.orig/drivers/scsi/qla2xxx/qla_attr.c
+++ 2.6-git/drivers/scsi/qla2xxx/qla_attr.c
@@ -8,6 +8,7 @@
 
 #include <linux/kthread.h>
 #include <linux/vmalloc.h>
+#include <linux/fs.h>
 
 static int qla24xx_vport_disable(struct fc_vport *, bool);
 
@@ -20,18 +21,12 @@ qla2x00_sysfs_read_fw_dump(struct kobjec
 {
 	struct scsi_qla_host *ha = shost_priv(dev_to_shost(container_of(kobj,
 	    struct device, kobj)));
-	char *rbuf = (char *)ha->fw_dump;
 
 	if (ha->fw_dump_reading == 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
@@ -91,20 +86,13 @@ qla2x00_sysfs_read_nvram(struct kobject 
 {
 	struct scsi_qla_host *ha = shost_priv(dev_to_shost(container_of(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;
-	if (off + count > size) {
-		size -= off;
-		count = size;
-	}
 
 	/* Read NVRAM data from cache. */
-	memcpy(buf, &nvram_cache[off], count);
-
-	return count;
+	return memory_read_from_buffer(buf, count, &off, ha->nvram,
+					ha->nvram_size);
 }
 
 static ssize_t
@@ -172,14 +160,9 @@ qla2x00_sysfs_read_optrom(struct kobject
 
 	if (ha->optrom_state != QLA_SREADING)
 		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 count;
+	return memory_read_from_buffer(buf, count, &off, ha->optrom_buffer,
+					ha->optrom_region_size);
 }
 
 static ssize_t
@@ -371,20 +354,12 @@ qla2x00_sysfs_read_vpd(struct kobject *k
 {
 	struct scsi_qla_host *ha = shost_priv(dev_to_shost(container_of(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;
-	if (off + count > size) {
-		size -= off;
-		count = size;
-	}
 
 	/* Read NVRAM data from cache. */
-	memcpy(buf, &vpd_cache[off], count);
-
-	return count;
+	return memory_read_from_buffer(buf, count, &off, ha->vpd, ha->vpd_size);
 }
 
 static ssize_t

-- 

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [patch -v3 22/22] qla2xxx: use memory_read_from_buffer
  2008-06-04 11:56 ` [patch -v3 22/22] qla2xxx: " Akinobu Mita
@ 2008-06-06 17:06   ` Andrew Vasquez
  0 siblings, 0 replies; 3+ messages in thread
From: Andrew Vasquez @ 2008-06-06 17:06 UTC (permalink / raw)
  To: Akinobu Mita
  Cc: linux-kernel, akpm, Andrew Vasquez, James E.J. Bottomley,
	linux-scsi

On Wed, 04 Jun 2008, Akinobu Mita wrote:

> Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
> Cc: Andrew Vasquez <linux-driver@qlogic.com>
> Cc: James E.J. Bottomley <James.Bottomley@HansenPartnership.com>
> Cc: linux-scsi@vger.kernel.org
> ---
>  drivers/scsi/qla2xxx/qla_attr.c |   45 ++++++++--------------------------------
>  1 file changed, 10 insertions(+), 35 deletions(-)

Basic testing looks good.  Thanks.

Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-06-06 17:06 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20080604115633.116832712@gmail.com>
2008-06-04 11:56 ` [patch -v3 21/22] ipr: use memory_read_from_buffer Akinobu Mita
2008-06-04 11:56 ` [patch -v3 22/22] qla2xxx: " Akinobu Mita
2008-06-06 17:06   ` Andrew Vasquez

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox