Re: [PATCH 5/7] qla2xxx: Suppress Coverity complaints about dseg_r*

Himanshu Madhani
2021-03-16T16:29:03Z

> On Mar 15, 2021, at 10:56 PM, Bart Van Assche <bvanassche@acm.org> wrote:
>
> Change dseq_rq and dseg_rsp from scalar structure members into
> single-element arrays such that Coverity does not complain about the
> (*cur_dsd)++ statement in append_dsd64().
>
> Cc: Quinn Tran <qutran@marvell.com>
> Cc: Mike Christie <michael.christie@oracle.com>
> Cc: Himanshu Madhani <himanshu.madhani@oracle.com>
> Cc: Daniel Wagner <dwagner@suse.de>
> Signed-off-by: Bart Van Assche <bvanassche@acm.org>
> ---
> drivers/scsi/qla2xxx/qla_mr.c | 12 ++++++------
> drivers/scsi/qla2xxx/qla_mr.h | 4 ++--
> 2 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/scsi/qla2xxx/qla_mr.c b/drivers/scsi/qla2xxx/qla_mr.c
> index ca7306685325..61eaf6c4ac47 100644
> --- a/drivers/scsi/qla2xxx/qla_mr.c
> +++ b/drivers/scsi/qla2xxx/qla_mr.c
> @@ -3266,8 +3266,8 @@ qlafx00_fxdisc_iocb(srb_t *sp, struct fxdisc_entry_fx00 *pfxiocb)
> fx_iocb.req_xfrcnt =
> cpu_to_le16(fxio->u.fxiocb.req_len);
> put_unaligned_le64(fxio->u.fxiocb.req_dma_handle,
> - &fx_iocb.dseg_rq.address);
> - fx_iocb.dseg_rq.length =
> + &fx_iocb.dseg_rq[0].address);
> + fx_iocb.dseg_rq[0].length =
> cpu_to_le32(fxio->u.fxiocb.req_len);
> }
>
> @@ -3276,8 +3276,8 @@ qlafx00_fxdisc_iocb(srb_t *sp, struct fxdisc_entry_fx00 *pfxiocb)
> fx_iocb.rsp_xfrcnt =
> cpu_to_le16(fxio->u.fxiocb.rsp_len);
> put_unaligned_le64(fxio->u.fxiocb.rsp_dma_handle,
> - &fx_iocb.dseg_rsp.address);
> - fx_iocb.dseg_rsp.length =
> + &fx_iocb.dseg_rsp[0].address);
> + fx_iocb.dseg_rsp[0].length =
> cpu_to_le32(fxio->u.fxiocb.rsp_len);
> }
>
> @@ -3314,7 +3314,7 @@ qlafx00_fxdisc_iocb(srb_t *sp, struct fxdisc_entry_fx00 *pfxiocb)
> cpu_to_le16(bsg_job->request_payload.sg_cnt);
> tot_dsds =
> bsg_job->request_payload.sg_cnt;
> - cur_dsd = &fx_iocb.dseg_rq;
> + cur_dsd = &fx_iocb.dseg_rq[0];
> avail_dsds = 1;
> for_each_sg(bsg_job->request_payload.sg_list, sg,
> tot_dsds, index) {
> @@ -3369,7 +3369,7 @@ qlafx00_fxdisc_iocb(srb_t *sp, struct fxdisc_entry_fx00 *pfxiocb)
> fx_iocb.rsp_dsdcnt =
> cpu_to_le16(bsg_job->reply_payload.sg_cnt);
> tot_dsds = bsg_job->reply_payload.sg_cnt;
> - cur_dsd = &fx_iocb.dseg_rsp;
> + cur_dsd = &fx_iocb.dseg_rsp[0];
> avail_dsds = 1;
>
> for_each_sg(bsg_job->reply_payload.sg_list, sg,
> diff --git a/drivers/scsi/qla2xxx/qla_mr.h b/drivers/scsi/qla2xxx/qla_mr.h
> index 73be8348402a..eefbae9d7547 100644
> --- a/drivers/scsi/qla2xxx/qla_mr.h
> +++ b/drivers/scsi/qla2xxx/qla_mr.h
> @@ -176,8 +176,8 @@ struct fxdisc_entry_fx00 {
> uint8_t flags;
> uint8_t reserved_1;
>
> - struct dsd64 dseg_rq;
> - struct dsd64 dseg_rsp;
> + struct dsd64 dseg_rq[1];
> + struct dsd64 dseg_rsp[1];
>
> __le32 dataword;
> __le32 adapid;

Looks Good.

Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>

--
Himanshu Madhani Oracle Linux Engineering