scsi: qla2xxx: Check the size of firmware data structures at compile time
authorBart Van Assche <bvanassche@acm.org>
Wed, 17 Apr 2019 21:44:37 +0000 (14:44 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Mon, 29 Apr 2019 21:24:51 +0000 (17:24 -0400)
Since the next patch will modify several firmware data structures, add
compile time checks that verify that these structures have the correct
size.

Cc: Himanshu Madhani <hmadhani@marvell.com>
Cc: Giridhar Malavali <gmalavali@marvell.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Acked-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_os.c
drivers/scsi/qla2xxx/qla_target.c

index 35f62f171b208d31e9ef7d86529d7a40d8734248..73ddd02d1a395f4332b6db383d3e096d1c26699d 100644 (file)
@@ -7285,6 +7285,30 @@ qla2x00_module_init(void)
 {
        int ret = 0;
 
+       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(ms_iocb_entry_t) != 64);
+       BUILD_BUG_ON(sizeof(request_t) != 64);
+       BUILD_BUG_ON(sizeof(struct access_chip_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);
+       BUILD_BUG_ON(sizeof(struct cmd_type_7) != 64);
+       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 ctio_crc2_to_fw) != 64);
+       BUILD_BUG_ON(sizeof(struct els_entry_24xx) != 64);
+       BUILD_BUG_ON(sizeof(struct fxdisc_entry_fx00) != 64);
+       BUILD_BUG_ON(sizeof(struct init_cb_24xx) != 128);
+       BUILD_BUG_ON(sizeof(struct init_cb_81xx) != 128);
+       BUILD_BUG_ON(sizeof(struct pt_ls4_request) != 64);
+       BUILD_BUG_ON(sizeof(struct sns_cmd_pkt) != 2064);
+       BUILD_BUG_ON(sizeof(struct verify_chip_entry_84xx) != 64);
+       BUILD_BUG_ON(sizeof(struct vf_evfp_entry_24xx) != 56);
+
        /* Allocate cache for SRBs. */
        srb_cachep = kmem_cache_create("qla2xxx_srbs", sizeof(srb_t), 0,
            SLAB_HWCACHE_ALIGN, NULL);
index dfacc42f1e1d9bfb19d15ef1f130f23b26d8bbd4..420c6cd0a7ea9c7e1ab77fc0c0af0754658349b2 100644 (file)
@@ -7372,6 +7372,9 @@ int __init qlt_init(void)
 {
        int ret;
 
+       BUILD_BUG_ON(sizeof(struct ctio7_to_24xx) != 64);
+       BUILD_BUG_ON(sizeof(struct ctio_to_2xxx) != 64);
+
        if (!qlt_parse_ini_mode()) {
                ql_log(ql_log_fatal, NULL, 0xe06b,
                    "qlt_parse_ini_mode() failed\n");