Loading drivers/scsi/ipr.c +5 −11 Original line number Diff line number Diff line Loading @@ -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 = { Loading Loading
drivers/scsi/ipr.c +5 −11 Original line number Diff line number Diff line Loading @@ -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 = { Loading