scsi: qla2xxx: Suppress Coverity complaints about dseg_r*
authorBart Van Assche <bvanassche@acm.org>
Sat, 20 Mar 2021 23:23:56 +0000 (16:23 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 25 Mar 2021 01:47:20 +0000 (21:47 -0400)
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().

Link: https://lore.kernel.org/r/20210320232359.941-5-bvanassche@acm.org
Cc: Quinn Tran <qutran@marvell.com>
Cc: Mike Christie <michael.christie@oracle.com>
Reviewed-by: Daniel Wagner <dwagner@suse.de>
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Reviewed-by: Lee Duncan <lduncan@suse.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_mr.c
drivers/scsi/qla2xxx/qla_mr.h

index d488ae9..6e920da 100644 (file)
@@ -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,
index 73be834..4f63aff 100644 (file)
@@ -176,8 +176,12 @@ struct fxdisc_entry_fx00 {
        uint8_t flags;
        uint8_t reserved_1;
 
-       struct dsd64 dseg_rq;
-       struct dsd64 dseg_rsp;
+       /*
+        * Use array size 1 below to prevent that Coverity complains about
+        * the append_dsd64() calls for the two arrays below.
+        */
+       struct dsd64 dseg_rq[1];
+       struct dsd64 dseg_rsp[1];
 
        __le32 dataword;
        __le32 adapid;