mirror of
https://github.com/torvalds/linux.git
synced 2026-10-13 22:01:02 +02:00
scsi: qla2xxx: Add build-time size check for VP config IOCB layout
Add a BUILD_BUG_ON for struct vp_config_entry_24xx_ext to verify its 128-byte size at compile time alongside the existing 64-byte check for struct vp_config_entry_24xx. Document in qla24xx_modify_vp_config() that the ext variant overlays the base 24xx layout for the first 64 bytes (all fields this helper reads and writes), so the IOCB can be built through a single struct vp_config_entry_24xx pointer regardless of the adapter's IOCB stride. Signed-off-by: Nilesh Javali <njavali@marvell.com> Reviewed-by: Hannes Reinecke <hare@kernel.org> Link: https://patch.msgid.link/20260723050413.3897522-37-njavali@marvell.com Signed-off-by: Martin K. Petersen (Oracle) <mkp@kernel.org>
This commit is contained in:
parent
d681a3315d
commit
12df4a4ca0
|
|
@ -4364,6 +4364,13 @@ qla24xx_modify_vp_config(scsi_qla_host_t *vha)
|
|||
return QLA_MEMORY_ALLOC_FAILED;
|
||||
}
|
||||
|
||||
/*
|
||||
* vp_config_entry_24xx_ext overlays vp_config_entry_24xx for the
|
||||
* full 64-byte 24xx layout (the ext variant merely appends fields
|
||||
* at offset 64+ which this helper never touches), so the IOCB is
|
||||
* built and inspected through a single struct vp_config_entry_24xx
|
||||
* pointer regardless of adapter stride.
|
||||
*/
|
||||
vpmod->entry_type = VP_CONFIG_IOCB_TYPE;
|
||||
vpmod->entry_count = 1;
|
||||
vpmod->command = VCT_COMMAND_MOD_ENABLE_VPS;
|
||||
|
|
@ -4392,7 +4399,6 @@ qla24xx_modify_vp_config(scsi_qla_host_t *vha)
|
|||
le16_to_cpu(vpmod->comp_status));
|
||||
rval = QLA_FUNCTION_FAILED;
|
||||
} else {
|
||||
/* EMPTY */
|
||||
ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x10c0,
|
||||
"Done %s.\n", __func__);
|
||||
fc_vport_set_state(vha->fc_vport, FC_VPORT_INITIALIZING);
|
||||
|
|
|
|||
|
|
@ -8436,6 +8436,7 @@ qla2x00_module_init(void)
|
|||
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_config_entry_24xx_ext) != 128);
|
||||
BUILD_BUG_ON(sizeof(struct vp_ctrl_entry_24xx) != 64);
|
||||
BUILD_BUG_ON(sizeof(struct vp_ctrl_entry_24xx_ext) != 128);
|
||||
BUILD_BUG_ON(sizeof(struct vp_rpt_id_entry_24xx) != 64);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user