Commit eeb270ae authored by Shin'ichiro Kawasaki's avatar Shin'ichiro Kawasaki Committed by Martin K. Petersen

scsi: mpi3mr: Remove unnecessary memcpy() to alltgt_info->dmi

In the function mpi3mr_get_all_tgt_info(), devmap_info points to
alltgt_info->dmi then there is no need to memcpy() data from devmap_info to
alltgt_info->dmi. Remove the unnecessary memcpy(). This also allows to
remove the local variable 'rval' and the goto label 'out'.

Link: https://lore.kernel.org/r/20230214005019.1897251-3-shinichiro.kawasaki@wdc.com
Cc: stable@vger.kernel.org
Fixes: f5e6d5a3 ("scsi: mpi3mr: Add support for driver commands")
Signed-off-by: default avatarShin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Acked-by: default avatarSathya Prakash Veerichetty <sathya.prakash@broadcom.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent fb428a20
...@@ -293,7 +293,6 @@ static long mpi3mr_bsg_pel_enable(struct mpi3mr_ioc *mrioc, ...@@ -293,7 +293,6 @@ static long mpi3mr_bsg_pel_enable(struct mpi3mr_ioc *mrioc,
static long mpi3mr_get_all_tgt_info(struct mpi3mr_ioc *mrioc, static long mpi3mr_get_all_tgt_info(struct mpi3mr_ioc *mrioc,
struct bsg_job *job) struct bsg_job *job)
{ {
long rval = -EINVAL;
u16 num_devices = 0, i = 0, size; u16 num_devices = 0, i = 0, size;
unsigned long flags; unsigned long flags;
struct mpi3mr_tgt_dev *tgtdev; struct mpi3mr_tgt_dev *tgtdev;
...@@ -304,7 +303,7 @@ static long mpi3mr_get_all_tgt_info(struct mpi3mr_ioc *mrioc, ...@@ -304,7 +303,7 @@ static long mpi3mr_get_all_tgt_info(struct mpi3mr_ioc *mrioc,
if (job->request_payload.payload_len < sizeof(u32)) { if (job->request_payload.payload_len < sizeof(u32)) {
dprint_bsg_err(mrioc, "%s: invalid size argument\n", dprint_bsg_err(mrioc, "%s: invalid size argument\n",
__func__); __func__);
return rval; return -EINVAL;
} }
spin_lock_irqsave(&mrioc->tgtdev_lock, flags); spin_lock_irqsave(&mrioc->tgtdev_lock, flags);
...@@ -350,20 +349,12 @@ static long mpi3mr_get_all_tgt_info(struct mpi3mr_ioc *mrioc, ...@@ -350,20 +349,12 @@ static long mpi3mr_get_all_tgt_info(struct mpi3mr_ioc *mrioc,
sizeof(*devmap_info); sizeof(*devmap_info);
usr_entrylen *= sizeof(*devmap_info); usr_entrylen *= sizeof(*devmap_info);
min_entrylen = min(usr_entrylen, kern_entrylen); min_entrylen = min(usr_entrylen, kern_entrylen);
if (min_entrylen && (!memcpy(&alltgt_info->dmi, devmap_info, min_entrylen))) {
dprint_bsg_err(mrioc, "%s:%d: device map info copy failed\n",
__func__, __LINE__);
rval = -EFAULT;
goto out;
}
sg_copy_from_buffer(job->request_payload.sg_list, sg_copy_from_buffer(job->request_payload.sg_list,
job->request_payload.sg_cnt, job->request_payload.sg_cnt,
alltgt_info, (min_entrylen + sizeof(u64))); alltgt_info, (min_entrylen + sizeof(u64)));
rval = 0;
out:
kfree(alltgt_info); kfree(alltgt_info);
return rval; return 0;
} }
/** /**
* mpi3mr_get_change_count - Get topology change count * mpi3mr_get_change_count - Get topology change count
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment