Commit 5e693586 authored by Mike McGowen's avatar Mike McGowen Committed by Martin K. Petersen

scsi: smartpqi: Fix BUILD_BUG_ON() statements

Add calls to the functions at the beginning driver initialization.

The BUILD_BUG_ON() statements that are currently in functions named
verify_structures() in the modules smartpqi_init.c and smartpqi_sis.c do
not work as currently implemented.

Link: https://lore.kernel.org/r/164375214355.440833.13129778749209816497.stgit@brunhilda.pdev.netReviewed-by: default avatarKevin Barnett <kevin.barnett@microchip.com>
Reviewed-by: default avatarScott Teel <scott.teel@microchip.com>
Reviewed-by: default avatarScott Benesh <scott.benesh@microchip.com>
Signed-off-by: default avatarMike McGowen <Mike.McGowen@microchip.com>
Signed-off-by: default avatarDon Brace <don.brace@microchip.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent c52efc92
...@@ -54,6 +54,7 @@ MODULE_DESCRIPTION("Driver for Microchip Smart Family Controller version " ...@@ -54,6 +54,7 @@ MODULE_DESCRIPTION("Driver for Microchip Smart Family Controller version "
MODULE_VERSION(DRIVER_VERSION); MODULE_VERSION(DRIVER_VERSION);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
static void pqi_verify_structures(void);
static void pqi_take_ctrl_offline(struct pqi_ctrl_info *ctrl_info, static void pqi_take_ctrl_offline(struct pqi_ctrl_info *ctrl_info,
enum pqi_ctrl_shutdown_reason ctrl_shutdown_reason); enum pqi_ctrl_shutdown_reason ctrl_shutdown_reason);
static void pqi_ctrl_offline_worker(struct work_struct *work); static void pqi_ctrl_offline_worker(struct work_struct *work);
...@@ -9703,6 +9704,8 @@ static int __init pqi_init(void) ...@@ -9703,6 +9704,8 @@ static int __init pqi_init(void)
int rc; int rc;
pr_info(DRIVER_NAME "\n"); pr_info(DRIVER_NAME "\n");
pqi_verify_structures();
sis_verify_structures();
pqi_sas_transport_template = sas_attach_transport(&pqi_sas_transport_functions); pqi_sas_transport_template = sas_attach_transport(&pqi_sas_transport_functions);
if (!pqi_sas_transport_template) if (!pqi_sas_transport_template)
...@@ -9726,7 +9729,7 @@ static void __exit pqi_cleanup(void) ...@@ -9726,7 +9729,7 @@ static void __exit pqi_cleanup(void)
module_init(pqi_init); module_init(pqi_init);
module_exit(pqi_cleanup); module_exit(pqi_cleanup);
static void __attribute__((unused)) verify_structures(void) static void pqi_verify_structures(void)
{ {
BUILD_BUG_ON(offsetof(struct pqi_ctrl_registers, BUILD_BUG_ON(offsetof(struct pqi_ctrl_registers,
sis_host_to_ctrl_doorbell) != 0x20); sis_host_to_ctrl_doorbell) != 0x20);
......
...@@ -479,7 +479,7 @@ int sis_wait_for_fw_triage_completion(struct pqi_ctrl_info *ctrl_info) ...@@ -479,7 +479,7 @@ int sis_wait_for_fw_triage_completion(struct pqi_ctrl_info *ctrl_info)
return rc; return rc;
} }
static void __attribute__((unused)) verify_structures(void) void sis_verify_structures(void)
{ {
BUILD_BUG_ON(offsetof(struct sis_base_struct, BUILD_BUG_ON(offsetof(struct sis_base_struct,
revision) != 0x0); revision) != 0x0);
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#if !defined(_SMARTPQI_SIS_H) #if !defined(_SMARTPQI_SIS_H)
#define _SMARTPQI_SIS_H #define _SMARTPQI_SIS_H
void sis_verify_structures(void);
int sis_wait_for_ctrl_ready(struct pqi_ctrl_info *ctrl_info); int sis_wait_for_ctrl_ready(struct pqi_ctrl_info *ctrl_info);
int sis_wait_for_ctrl_ready_resume(struct pqi_ctrl_info *ctrl_info); int sis_wait_for_ctrl_ready_resume(struct pqi_ctrl_info *ctrl_info);
bool sis_is_firmware_running(struct pqi_ctrl_info *ctrl_info); bool sis_is_firmware_running(struct pqi_ctrl_info *ctrl_info);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment