From: akinobu.mita@gmail.com
To: linux-kernel@vger.kernel.org
Cc: Andrew Vasquez <linux-driver@qlogic.com>,
"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
linux-scsi@vger.kernel.org
Subject: [patch -v2 23/23] qla2xxx: use memory_read_from_buffer
Date: Mon, 02 Jun 2008 08:13:52 +0900 [thread overview]
Message-ID: <20080601231653.012518474@gmail.com> (raw)
In-Reply-To: 20080601231329.223608711@gmail.com
[-- 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
--
prev parent reply other threads:[~2008-06-01 23:35 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-01 23:13 [patch -v2 00/23] use simple_read_from_buffer and memory_read_from_buffer akinobu.mita
2008-06-01 23:13 ` [patch -v2 01/23] sunrpc: use simple_read_from_buffer akinobu.mita
2008-06-02 5:35 ` Alexey Dobriyan
2008-06-02 12:11 ` Akinobu Mita
2008-06-01 23:13 ` [patch -v2 02/23] binfmt_misc: " akinobu.mita
2008-06-01 23:13 ` [patch -v2 03/23] ocfs2: " akinobu.mita
2008-06-02 20:42 ` Joel Becker
2008-06-01 23:13 ` [patch -v2 04/23] ipc: " akinobu.mita
2008-06-01 23:13 ` [patch -v2 05/23] isdn: " akinobu.mita
2008-06-01 23:13 ` [patch -v2 06/23] s390/vmcp: " akinobu.mita
2008-06-02 8:53 ` Christian Borntraeger
2008-06-02 12:28 ` Akinobu Mita
2008-06-01 23:13 ` [patch -v2 07/23] s390: " akinobu.mita
2008-06-01 23:13 ` [patch -v2 08/23] nwflash: " akinobu.mita
2008-06-01 23:13 ` [patch -v2 09/23] usbmon: " akinobu.mita
2008-06-01 23:13 ` [patch -v2 10/23] ttusb: use simple_read_from_buffer() akinobu.mita
2008-06-01 23:13 ` [patch -v2 11/23] airo: use simple_read_from_buffer akinobu.mita
2008-06-01 23:13 ` [patch -v2 12/23] cris: " akinobu.mita
2008-06-01 23:13 ` [patch -v2 13/23] introduce memory_read_from_buffer akinobu.mita
2008-06-01 23:13 ` [patch -v2 14/23] dcdbas: use memory_read_from_buffer akinobu.mita
2008-06-01 23:13 ` [patch -v2 15/23] dell_rbu: " akinobu.mita
2008-06-01 23:13 ` [patch -v2 16/23] firmware: " akinobu.mita
2008-06-01 23:13 ` [patch -v2 17/23] acpi: " akinobu.mita
2008-06-01 23:13 ` [patch -v2 18/23] aty: " akinobu.mita
2008-06-01 23:13 ` [patch -v2 19/23] zorro: " akinobu.mita
2008-06-02 7:22 ` Geert Uytterhoeven
2008-06-01 23:13 ` [patch -v2 20/23] s390/cio: " akinobu.mita
2008-06-01 23:13 ` [patch -v2 21/23] s390: " akinobu.mita
2008-06-01 23:13 ` [patch -v2 22/23] ipr: " akinobu.mita
2008-06-01 23:13 ` akinobu.mita [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080601231653.012518474@gmail.com \
--to=akinobu.mita@gmail.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=linux-driver@qlogic.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox