linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: himanshu.madhani@oracle.com
To: Bart Van Assche <bvanassche@acm.org>,
	"Martin K . Petersen" <martin.petersen@oracle.com>,
	"James E . J . Bottomley" <jejb@linux.vnet.ibm.com>
Cc: linux-scsi@vger.kernel.org, Nilesh Javali <njavali@marvell.com>,
	Quinn Tran <qutran@marvell.com>, Martin Wilck <mwilck@suse.com>,
	Daniel Wagner <dwagner@suse.de>,
	Roman Bolshakov <r.bolshakov@yadro.com>
Subject: Re: [PATCH v4 04/11] qla2xxx: Add more BUILD_BUG_ON() statements
Date: Mon, 27 Apr 2020 09:18:24 -0500	[thread overview]
Message-ID: <31c4a6dd-812c-cf41-2e4a-142ae2858e8a@oracle.com> (raw)
In-Reply-To: <20200427030310.19687-5-bvanassche@acm.org>



On 4/26/20 10:03 PM, Bart Van Assche wrote:
> Before fixing the endianness annotations in data structures, make the
> compiler verify the size of FC protocol and firmware data structures.
> 
> Cc: Nilesh Javali <njavali@marvell.com>
> Cc: Himanshu Madhani <himanshu.madhani@oracle.com>
> Cc: Quinn Tran <qutran@marvell.com>
> Cc: Martin Wilck <mwilck@suse.com>
> Cc: Daniel Wagner <dwagner@suse.de>
> Cc: Roman Bolshakov <r.bolshakov@yadro.com>
> Signed-off-by: Bart Van Assche <bvanassche@acm.org>
> ---
>   drivers/scsi/qla2xxx/qla_os.c      | 59 ++++++++++++++++++++++++++++++
>   drivers/scsi/qla2xxx/tcm_qla2xxx.c | 14 +++++++
>   2 files changed, 73 insertions(+)
> 
> diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
> index 497544413aa0..2dd9c2a39cd5 100644
> --- a/drivers/scsi/qla2xxx/qla_os.c
> +++ b/drivers/scsi/qla2xxx/qla_os.c
> @@ -7815,13 +7815,19 @@ qla2x00_module_init(void)
>   {
>   	int ret = 0;
>   
> +	BUILD_BUG_ON(sizeof(cmd_a64_entry_t) != 64);
>   	BUILD_BUG_ON(sizeof(cmd_entry_t) != 64);
>   	BUILD_BUG_ON(sizeof(cont_a64_entry_t) != 64);
>   	BUILD_BUG_ON(sizeof(cont_entry_t) != 64);
>   	BUILD_BUG_ON(sizeof(init_cb_t) != 96);
> +	BUILD_BUG_ON(sizeof(mrk_entry_t) != 64);
>   	BUILD_BUG_ON(sizeof(ms_iocb_entry_t) != 64);
>   	BUILD_BUG_ON(sizeof(request_t) != 64);
> +	BUILD_BUG_ON(sizeof(struct abort_entry_24xx) != 64);
> +	BUILD_BUG_ON(sizeof(struct abort_iocb_entry_fx00) != 64);
> +	BUILD_BUG_ON(sizeof(struct abts_entry_24xx) != 64);
>   	BUILD_BUG_ON(sizeof(struct access_chip_84xx) != 64);
> +	BUILD_BUG_ON(sizeof(struct access_chip_rsp_84xx) != 64);
>   	BUILD_BUG_ON(sizeof(struct cmd_bidir) != 64);
>   	BUILD_BUG_ON(sizeof(struct cmd_nvme) != 64);
>   	BUILD_BUG_ON(sizeof(struct cmd_type_6) != 64);
> @@ -7829,17 +7835,70 @@ qla2x00_module_init(void)
>   	BUILD_BUG_ON(sizeof(struct cmd_type_7_fx00) != 64);
>   	BUILD_BUG_ON(sizeof(struct cmd_type_crc_2) != 64);
>   	BUILD_BUG_ON(sizeof(struct ct_entry_24xx) != 64);
> +	BUILD_BUG_ON(sizeof(struct ct_fdmi1_hba_attributes) != 2344);
> +	BUILD_BUG_ON(sizeof(struct ct_fdmi2_hba_attributes) != 4424);
> +	BUILD_BUG_ON(sizeof(struct ct_fdmi2_port_attributes) != 4164);
> +	BUILD_BUG_ON(sizeof(struct ct_fdmi_hba_attr) != 260);
> +	BUILD_BUG_ON(sizeof(struct ct_fdmi_port_attr) != 260);
> +	BUILD_BUG_ON(sizeof(struct ct_rsp_hdr) != 16);
> +	BUILD_BUG_ON(sizeof(struct ct_sns_req) != 4460);
>   	BUILD_BUG_ON(sizeof(struct ctio_crc2_to_fw) != 64);
> +	BUILD_BUG_ON(sizeof(struct device_reg_24xx) != 256);
> +	BUILD_BUG_ON(sizeof(struct device_reg_25xxmq) != 24);
> +	BUILD_BUG_ON(sizeof(struct device_reg_2xxx) != 256);
> +	BUILD_BUG_ON(sizeof(struct device_reg_82xx) != 1288);
> +	BUILD_BUG_ON(sizeof(struct device_reg_fx00) != 216);
>   	BUILD_BUG_ON(sizeof(struct els_entry_24xx) != 64);
> +	BUILD_BUG_ON(sizeof(struct els_sts_entry_24xx) != 64);
>   	BUILD_BUG_ON(sizeof(struct fxdisc_entry_fx00) != 64);
> +	BUILD_BUG_ON(sizeof(struct imm_ntfy_from_isp) != 64);
>   	BUILD_BUG_ON(sizeof(struct init_cb_24xx) != 128);
>   	BUILD_BUG_ON(sizeof(struct init_cb_81xx) != 128);
> +	BUILD_BUG_ON(sizeof(struct logio_entry_24xx) != 64);
> +	BUILD_BUG_ON(sizeof(struct mbx_entry) != 64);
> +	BUILD_BUG_ON(sizeof(struct mid_init_cb_24xx) != 5252);
> +	BUILD_BUG_ON(sizeof(struct mrk_entry_24xx) != 64);
> +	BUILD_BUG_ON(sizeof(struct nvram_24xx) != 512);
> +	BUILD_BUG_ON(sizeof(struct nvram_81xx) != 512);
>   	BUILD_BUG_ON(sizeof(struct pt_ls4_request) != 64);
> +	BUILD_BUG_ON(sizeof(struct pt_ls4_rx_unsol) != 64);
> +	BUILD_BUG_ON(sizeof(struct purex_entry_24xx) != 64);
> +	BUILD_BUG_ON(sizeof(struct qla2100_fw_dump) != 123634);
> +	BUILD_BUG_ON(sizeof(struct qla2300_fw_dump) != 136100);
> +	BUILD_BUG_ON(sizeof(struct qla24xx_fw_dump) != 37976);
> +	BUILD_BUG_ON(sizeof(struct qla25xx_fw_dump) != 39228);
> +	BUILD_BUG_ON(sizeof(struct qla2xxx_fce_chain) != 52);
> +	BUILD_BUG_ON(sizeof(struct qla2xxx_fw_dump) != 136172);
> +	BUILD_BUG_ON(sizeof(struct qla2xxx_mq_chain) != 524);
> +	BUILD_BUG_ON(sizeof(struct qla2xxx_mqueue_chain) != 8);
> +	BUILD_BUG_ON(sizeof(struct qla2xxx_mqueue_header) != 12);
> +	BUILD_BUG_ON(sizeof(struct qla2xxx_offld_chain) != 24);
> +	BUILD_BUG_ON(sizeof(struct qla81xx_fw_dump) != 39420);
> +	BUILD_BUG_ON(sizeof(struct qla82xx_uri_data_desc) != 28);
> +	BUILD_BUG_ON(sizeof(struct qla82xx_uri_table_desc) != 32);
> +	BUILD_BUG_ON(sizeof(struct qla83xx_fw_dump) != 51196);
> +	BUILD_BUG_ON(sizeof(struct qla_fdt_layout) != 128);
>   	BUILD_BUG_ON(sizeof(struct qla_flt_header) != 8);
>   	BUILD_BUG_ON(sizeof(struct qla_flt_region) != 16);
> +	BUILD_BUG_ON(sizeof(struct qla_npiv_entry) != 24);
> +	BUILD_BUG_ON(sizeof(struct qla_npiv_header) != 16);
> +	BUILD_BUG_ON(sizeof(struct rdp_rsp_payload) != 336);
>   	BUILD_BUG_ON(sizeof(struct sns_cmd_pkt) != 2064);
> +	BUILD_BUG_ON(sizeof(struct sts_entry_24xx) != 64);
> +	BUILD_BUG_ON(sizeof(struct tsk_mgmt_entry) != 64);
> +	BUILD_BUG_ON(sizeof(struct tsk_mgmt_entry_fx00) != 64);
>   	BUILD_BUG_ON(sizeof(struct verify_chip_entry_84xx) != 64);
> +	BUILD_BUG_ON(sizeof(struct verify_chip_rsp_84xx) != 52);
>   	BUILD_BUG_ON(sizeof(struct vf_evfp_entry_24xx) != 56);
> +	BUILD_BUG_ON(sizeof(struct vp_config_entry_24xx) != 64);
> +	BUILD_BUG_ON(sizeof(struct vp_ctrl_entry_24xx) != 64);
> +	BUILD_BUG_ON(sizeof(struct vp_rpt_id_entry_24xx) != 64);
> +	BUILD_BUG_ON(sizeof(sts21_entry_t) != 64);
> +	BUILD_BUG_ON(sizeof(sts22_entry_t) != 64);
> +	BUILD_BUG_ON(sizeof(sts_cont_entry_t) != 64);
> +	BUILD_BUG_ON(sizeof(sts_entry_t) != 64);
> +	BUILD_BUG_ON(sizeof(sw_info_t) != 32);
> +	BUILD_BUG_ON(sizeof(target_id_t) != 2);
>   
>   	/* Allocate cache for SRBs. */
>   	srb_cachep = kmem_cache_create("qla2xxx_srbs", sizeof(srb_t), 0,
> diff --git a/drivers/scsi/qla2xxx/tcm_qla2xxx.c b/drivers/scsi/qla2xxx/tcm_qla2xxx.c
> index 1f0a185b2a95..92e1a5d3928b 100644
> --- a/drivers/scsi/qla2xxx/tcm_qla2xxx.c
> +++ b/drivers/scsi/qla2xxx/tcm_qla2xxx.c
> @@ -1958,6 +1958,20 @@ static int __init tcm_qla2xxx_init(void)
>   {
>   	int ret;
>   
> +	BUILD_BUG_ON(sizeof(struct abts_recv_from_24xx) != 64);
> +	BUILD_BUG_ON(sizeof(struct abts_resp_from_24xx_fw) != 64);
> +	BUILD_BUG_ON(sizeof(struct atio7_fcp_cmnd) != 32);
> +	BUILD_BUG_ON(sizeof(struct atio_from_isp) != 64);
> +	BUILD_BUG_ON(sizeof(struct ba_acc_le) != 12);
> +	BUILD_BUG_ON(sizeof(struct ba_rjt_le) != 4);
> +	BUILD_BUG_ON(sizeof(struct ctio7_from_24xx) != 64);
> +	BUILD_BUG_ON(sizeof(struct ctio7_to_24xx) != 64);
> +	BUILD_BUG_ON(sizeof(struct ctio_crc2_to_fw) != 64);
> +	BUILD_BUG_ON(sizeof(struct ctio_crc_from_fw) != 64);
> +	BUILD_BUG_ON(sizeof(struct ctio_to_2xxx) != 64);
> +	BUILD_BUG_ON(sizeof(struct fcp_hdr_le) != 24);
> +	BUILD_BUG_ON(sizeof(struct nack_to_isp) != 64);
> +
>   	ret = tcm_qla2xxx_register_configfs();
>   	if (ret < 0)
>   		return ret;
> 

Looks fine.

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

-- 
Himanshu Madhani
Oracle Linux Engineering

  parent reply	other threads:[~2020-04-27 14:18 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-27  3:02 [PATCH v4 00/11] Fix qla2xxx endianness annotations Bart Van Assche
2020-04-27  3:03 ` [PATCH v4 01/11] qla2xxx: Fix spelling of a variable name Bart Van Assche
2020-04-27  8:10   ` Daniel Wagner
2020-04-27 14:09   ` himanshu.madhani
2020-05-06 12:30   ` Hannes Reinecke
2020-05-11  7:31   ` Arun Easi
2020-04-27  3:03 ` [PATCH v4 02/11] qla2xxx: Suppress two recently introduced compiler warnings Bart Van Assche
2020-04-27  8:15   ` Daniel Wagner
2020-04-27 17:37     ` Bart Van Assche
2020-04-27 18:41     ` Steven Rostedt
2020-04-30  7:29       ` Daniel Wagner
2020-04-27 14:10   ` himanshu.madhani
2020-05-06 13:41   ` Hannes Reinecke
2020-05-11  7:32   ` Arun Easi
2020-04-27  3:03 ` [PATCH v4 03/11] qla2xxx: Sort BUILD_BUG_ON() statements alphabetically Bart Van Assche
2020-04-27  8:16   ` Daniel Wagner
2020-04-27 14:11   ` himanshu.madhani
2020-05-06 13:42   ` Hannes Reinecke
2020-05-11  7:32   ` Arun Easi
2020-04-27  3:03 ` [PATCH v4 04/11] qla2xxx: Add more BUILD_BUG_ON() statements Bart Van Assche
2020-04-27  8:18   ` Daniel Wagner
2020-04-27 14:18   ` himanshu.madhani [this message]
2020-05-06 13:42   ` Hannes Reinecke
2020-05-11  7:34   ` Arun Easi
2020-05-11 15:55     ` Bart Van Assche
2020-04-27  3:03 ` [PATCH v4 05/11] qla2xxx: Make a gap in struct qla2xxx_offld_chain explicit Bart Van Assche
2020-04-27  8:26   ` Daniel Wagner
2020-04-27 14:27   ` himanshu.madhani
2020-04-27 17:39     ` Bart Van Assche
2020-05-06 13:43   ` Hannes Reinecke
2020-05-11  7:34   ` Arun Easi
2020-04-27  3:03 ` [PATCH v4 06/11] qla2xxx: Increase the size of struct qla_fcp_prio_cfg to FCP_PRIO_CFG_SIZE Bart Van Assche
2020-04-27  8:33   ` Daniel Wagner
2020-04-27 14:28   ` himanshu.madhani
2020-05-06 13:43   ` Hannes Reinecke
2020-05-11  7:36   ` Arun Easi
2020-05-11 16:04     ` Bart Van Assche
2020-04-27  3:03 ` [PATCH v4 07/11] qla2xxx: Change two hardcoded constants into offsetof() / sizeof() expressions Bart Van Assche
2020-04-27  8:39   ` Daniel Wagner
2020-04-27 14:34   ` himanshu.madhani
2020-05-06 13:45   ` Hannes Reinecke
2020-05-11  7:36   ` Arun Easi
2020-04-27  3:03 ` [PATCH v4 08/11] qla2xxx: Fix the code that reads from mailbox registers Bart Van Assche
2020-04-27  8:41   ` Daniel Wagner
2020-04-27 14:45   ` himanshu.madhani
2020-05-06 14:03   ` Hannes Reinecke
2020-05-11  7:39   ` Arun Easi
2020-05-11 16:07     ` Bart Van Assche
2020-04-27  3:03 ` [PATCH v4 09/11] qla2xxx: Change {RD,WRT}_REG_*() function names from upper case into lower case Bart Van Assche
2020-04-27  8:41   ` Daniel Wagner
2020-04-27 14:53   ` himanshu.madhani
2020-05-11  7:40   ` Arun Easi
2020-05-11 16:11     ` Bart Van Assche
2020-04-27  3:03 ` [PATCH v4 10/11] qla2xxx: Fix endianness annotations in header files Bart Van Assche
2020-04-27 14:57   ` himanshu.madhani
2020-04-28  0:25     ` Finn Thain
2020-04-28 13:55       ` himanshu.madhani
2020-04-27  3:03 ` [PATCH v4 11/11] qla2xxx: Fix endianness annotations in source files Bart Van Assche
2020-04-27 14:59   ` himanshu.madhani

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=31c4a6dd-812c-cf41-2e4a-142ae2858e8a@oracle.com \
    --to=himanshu.madhani@oracle.com \
    --cc=bvanassche@acm.org \
    --cc=dwagner@suse.de \
    --cc=jejb@linux.vnet.ibm.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=mwilck@suse.com \
    --cc=njavali@marvell.com \
    --cc=qutran@marvell.com \
    --cc=r.bolshakov@yadro.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).