Blame SOURCES/0093-scsi-scsi-qla2xxx-Check-the-size-of-firmware-data-st.patch

3d7c23
From a23950ba57e7e834f0ab5d689693e568e6ed29c9 Mon Sep 17 00:00:00 2001
3d7c23
From: Himanshu Madhani <hmadhani@redhat.com>
3d7c23
Date: Thu, 1 Aug 2019 15:55:53 -0400
3d7c23
Subject: [PATCH 093/124] [scsi] scsi: qla2xxx: Check the size of firmware data
3d7c23
 structures at compile time
3d7c23
3d7c23
Message-id: <20190801155618.12650-94-hmadhani@redhat.com>
3d7c23
Patchwork-id: 267877
3d7c23
O-Subject: [RHEL 7.8 e-stor PATCH 093/118] scsi: qla2xxx: Check the size of firmware data structures at compile time
3d7c23
Bugzilla: 1729270
3d7c23
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
3d7c23
RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
3d7c23
3d7c23
From: Bart Van Assche <bvanassche@acm.org>
3d7c23
3d7c23
Bugzilla 1729270
3d7c23
3d7c23
Since the next patch will modify several firmware data structures, add
3d7c23
compile time checks that verify that these structures have the correct
3d7c23
size.
3d7c23
3d7c23
Cc: Himanshu Madhani <hmadhani@marvell.com>
3d7c23
Cc: Giridhar Malavali <gmalavali@marvell.com>
3d7c23
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
3d7c23
Acked-by: Himanshu Madhani <hmadhani@marvell.com>
3d7c23
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
3d7c23
(cherry picked from commit bc04459ce4e5d394d79fe2a0660d43c1a40b6eb8)
3d7c23
Signed-off-by: Himanshu Madhani <hmadhani@redhat.com>
3d7c23
Signed-off-by: Jan Stancek <jstancek@redhat.com>
3d7c23
---
3d7c23
 drivers/scsi/qla2xxx/qla_os.c     | 24 ++++++++++++++++++++++++
3d7c23
 drivers/scsi/qla2xxx/qla_target.c |  3 +++
3d7c23
 2 files changed, 27 insertions(+)
3d7c23
3d7c23
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
3d7c23
index bc72d4802844..bf0896af5ad3 100644
3d7c23
--- a/drivers/scsi/qla2xxx/qla_os.c
3d7c23
+++ b/drivers/scsi/qla2xxx/qla_os.c
3d7c23
@@ -7364,6 +7364,30 @@ qla2x00_module_init(void)
3d7c23
 {
3d7c23
 	int ret = 0;
3d7c23
 
3d7c23
+	BUILD_BUG_ON(sizeof(cmd_entry_t) != 64);
3d7c23
+	BUILD_BUG_ON(sizeof(cont_a64_entry_t) != 64);
3d7c23
+	BUILD_BUG_ON(sizeof(cont_entry_t) != 64);
3d7c23
+	BUILD_BUG_ON(sizeof(init_cb_t) != 96);
3d7c23
+	BUILD_BUG_ON(sizeof(ms_iocb_entry_t) != 64);
3d7c23
+	BUILD_BUG_ON(sizeof(request_t) != 64);
3d7c23
+	BUILD_BUG_ON(sizeof(struct access_chip_84xx) != 64);
3d7c23
+	BUILD_BUG_ON(sizeof(struct cmd_bidir) != 64);
3d7c23
+	BUILD_BUG_ON(sizeof(struct cmd_nvme) != 64);
3d7c23
+	BUILD_BUG_ON(sizeof(struct cmd_type_6) != 64);
3d7c23
+	BUILD_BUG_ON(sizeof(struct cmd_type_7) != 64);
3d7c23
+	BUILD_BUG_ON(sizeof(struct cmd_type_7_fx00) != 64);
3d7c23
+	BUILD_BUG_ON(sizeof(struct cmd_type_crc_2) != 64);
3d7c23
+	BUILD_BUG_ON(sizeof(struct ct_entry_24xx) != 64);
3d7c23
+	BUILD_BUG_ON(sizeof(struct ctio_crc2_to_fw) != 64);
3d7c23
+	BUILD_BUG_ON(sizeof(struct els_entry_24xx) != 64);
3d7c23
+	BUILD_BUG_ON(sizeof(struct fxdisc_entry_fx00) != 64);
3d7c23
+	BUILD_BUG_ON(sizeof(struct init_cb_24xx) != 128);
3d7c23
+	BUILD_BUG_ON(sizeof(struct init_cb_81xx) != 128);
3d7c23
+	BUILD_BUG_ON(sizeof(struct pt_ls4_request) != 64);
3d7c23
+	BUILD_BUG_ON(sizeof(struct sns_cmd_pkt) != 2064);
3d7c23
+	BUILD_BUG_ON(sizeof(struct verify_chip_entry_84xx) != 64);
3d7c23
+	BUILD_BUG_ON(sizeof(struct vf_evfp_entry_24xx) != 56);
3d7c23
+
3d7c23
 	/* Allocate cache for SRBs. */
3d7c23
 	srb_cachep = kmem_cache_create("qla2xxx_srbs", sizeof(srb_t), 0,
3d7c23
 	    SLAB_HWCACHE_ALIGN, NULL);
3d7c23
diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c
3d7c23
index 204004431c3f..398a8d6b4db6 100644
3d7c23
--- a/drivers/scsi/qla2xxx/qla_target.c
3d7c23
+++ b/drivers/scsi/qla2xxx/qla_target.c
3d7c23
@@ -7407,6 +7407,9 @@ int __init qlt_init(void)
3d7c23
 {
3d7c23
 	int ret;
3d7c23
 
3d7c23
+	BUILD_BUG_ON(sizeof(struct ctio7_to_24xx) != 64);
3d7c23
+	BUILD_BUG_ON(sizeof(struct ctio_to_2xxx) != 64);
3d7c23
+
3d7c23
 	if (!qlt_parse_ini_mode()) {
3d7c23
 		ql_log(ql_log_fatal, NULL, 0xe06b,
3d7c23
 		    "qlt_parse_ini_mode() failed\n");
3d7c23
-- 
3d7c23
2.13.6
3d7c23