On Mon, Apr 13, 2020 at 08:56:18PM -0700, Bart Van Assche wrote: > On 2020-04-13 08:30, Roman Bolshakov wrote: > > On Sun, Apr 05, 2020 at 04:13:39PM -0700, Bart Van Assche wrote: > >> This patch fixes the following Coverity complaint without changing any > >> functionality: > >> > >> CID 337793 (#1 of 1): Wrong size argument (SIZEOF_MISMATCH) > >> suspicious_sizeof: Passing argument ha->fcp_prio_cfg of type > >> struct qla_fcp_prio_cfg * and argument 32768UL to function memset is > >> suspicious because a multiple of sizeof (struct qla_fcp_prio_cfg) /*48*/ > >> is expected. > >> > >> memset(ha->fcp_prio_cfg, 0, FCP_PRIO_CFG_SIZE); > >> > >> --- > >> drivers/scsi/qla2xxx/qla_fw.h | 3 ++- > >> drivers/scsi/qla2xxx/qla_os.c | 1 + > >> 2 files changed, 3 insertions(+), 1 deletion(-) > >> > >> diff --git a/drivers/scsi/qla2xxx/qla_fw.h b/drivers/scsi/qla2xxx/qla_fw.h > >> index f9bad5bd7198..647e67c6ba5e 100644 > >> --- a/drivers/scsi/qla2xxx/qla_fw.h > >> +++ b/drivers/scsi/qla2xxx/qla_fw.h > >> @@ -2217,8 +2217,9 @@ struct qla_fcp_prio_cfg { > >> #define FCP_PRIO_ATTR_PERSIST 0x2 > >> uint8_t reserved; /* Reserved for future use */ > >> #define FCP_PRIO_CFG_HDR_SIZE 0x10 > >> - struct qla_fcp_prio_entry entry[1]; /* fcp priority entries */ > >> + struct qla_fcp_prio_entry entry[1023]; /* fcp priority entries */ > >> #define FCP_PRIO_CFG_ENTRY_SIZE 0x20 > >> + uint8_t reserved2[16]; > >> }; > >> > >> #define FCP_PRIO_CFG_SIZE (32*1024) /* fcp prio data per port*/ > > > > A new constant may be introduced to define size of qla_fcp_prio_entry. > > That would let to drop the magic 32 number here and allow to add one > > more BUILD_BUG_ON for sizeof(struct qla_fcp_prio_entry). > > The constant FCP_PRIO_CFG_ENTRY_SIZE is only used once, namely in the > following code: > > len = ha->fcp_prio_cfg->num_entries * FCP_PRIO_CFG_ENTRY_SIZE; > > How about removing the definition of FCP_PRIO_CFG_ENTRY_SIZE and > changing FCP_PRIO_CFG_ENTRY_SIZE in the above calculation into > sizeof(struct qla_fcp_prio_entry)? > Hi Bart, I overlooked the FCP_PRIO_CFG_ENTRY_SIZE definition in the hunk :) Since it's already there, we can just replace 32 with it and add BUILD_BUG_ON using the definition. What you propose is also reasonable if used with BUILD_BUG_ON that has numeric literal for FCP_PRIO_CFG_ENTRY_SIZE. Thanks, Roman