scsi: mpi3mr: Remove unnecessary memcpy() to alltgt_info->dmi
commit eeb270aee3e085411399f129fc14fa04bd6d83cf upstream. 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: f5e6d5a34376 ("scsi: mpi3mr: Add support for driver commands") Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com> Acked-by: Sathya Prakash Veerichetty <sathya.prakash@broadcom.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
8ba997b22f
commit
155ca832cf
@ -293,7 +293,6 @@ out:
|
|||||||
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,
|
|||||||
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,
|
|||||||
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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user