[SCSI] ipr: use memory_read_from_buffer()

Signed-off-by: Akinobu Mita <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Acked-by: Brian King <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
This commit is contained in:
Akinobu Mita 2008-09-22 14:56:47 -07:00 • committed by James Bottomley
commit d777aaf386

View file

@ -2456,20 +2456,14 @@ static ssize_t ipr_read_trace(struct kobject *kobj,
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 = {