drivers: scsi: megaraid: Add "megaraid_sas_internal.h" for internal shared functions using
Subsystems (2)
PATCH 1/1 drivers: scsi: megaraid: Add "megaraid_sas_internal.h" for internal shared functions using
For shared inline functions acrossed source files, better to let it as "static inline" in a header file. For extern functions, better to declare them in header file.
For the latest upstream gcc/binutiles (gcc 5 with ld 2.25.51), it will cause building break (although it might be the gcc's or ld's issue), the related error (with allmodconfig under tile):
MODPOST 4002 modules
ERROR: "megasas_return_cmd" [drivers/scsi/megaraid/megaraid_sas.ko] undefined!
ERROR: "megasas_is_ldio" [drivers/scsi/megaraid/megaraid_sas.ko] undefined!
Signed-off-by Chen Gang <[email protected]>
--- drivers/scsi/megaraid/megaraid_sas_base.c | 65 +---------------- drivers/scsi/megaraid/megaraid_sas_fusion.c | 38 +--------- drivers/scsi/megaraid/megaraid_sas_internal.h | 100 ++++++++++++++++++++++++++ 3 files changed, 102 insertions(+), 101 deletions(-) create mode 100644 drivers/scsi/megaraid/megaraid_sas_internal.h
drivers/scsi/megaraid/megaraid_sas_base.c +1 -64
@@ -57,6 +57,7 @@#include <scsi/scsi_tcq.h> #include "megaraid_sas_fusion.h" #include "megaraid_sas.h" +#include "megaraid_sas_internal.h" /* * Number of sectors per IO command
@@ -98,7 +99,6 @@ MODULE_VERSION(MEGASAS_VERSION);MODULE_AUTHOR ("[email protected]" );MODULE_DESCRIPTION ("LSI MegaRAID SAS Driver" ); -int megasas_transition_to_ready (struct megasas_instance *instance,int ocr);static int megasas_get_pd_list (struct megasas_instance *instance);static int megasas_ld_list_query (struct megasas_instance *instance,u8 query_type);
@@ -155,9 +155,6 @@ static u32 support_device_change;/* define lock for aen poll */ spinlock_t poll_aen_lock; -void -megasas_complete_cmd (struct megasas_instance *instance,struct megasas_cmd *cmd, -u8 alt_status);static u32 megasas_read_fw_status_reg_gen2 (struct megasas_register_set __iomem *regs); static int
@@ -170,26 +167,8 @@ u32 megasas_build_and_issue_cmd(struct megasas_instance *instance, struct scsi_cmnd *scmd);static void megasas_complete_cmd_dpc (unsigned long instance_addr); -void -megasas_release_fusion (struct megasas_instance *instance); -int -megasas_ioc_init_fusion (struct megasas_instance *instance); -void -megasas_free_cmds_fusion (struct megasas_instance *instance); -u8 -megasas_get_map_info (struct megasas_instance *instance); -int -megasas_sync_map_info (struct megasas_instance *instance); -int -wait_and_poll (struct megasas_instance *instance,struct megasas_cmd *cmd, -int seconds); -void megasas_reset_reply_desc (struct megasas_instance *instance); -int megasas_reset_fusion (struct Scsi_Host *shost,int iotimeout); -void megasas_fusion_ocr_wq (struct work_struct *work);static int megasas_get_ld_vf_affiliation (struct megasas_instance *instance,int initial); -int megasas_check_mpio_paths (struct megasas_instance *instance, -struct scsi_cmnd *scmd);void megasas_issue_dcmd (struct megasas_instance *instance,struct megasas_cmd *cmd)
@@ -258,22 +237,6 @@ __megasas_return_cmd(struct megasas_instance *instance, struct megasas_cmd *cmd) }/** -* megasas_return_cmd - Return a cmd to free command pool -* @instance: Adapter soft state -* @cmd: Command packet to be returned to free command pool -*/ -inline void -megasas_return_cmd (struct megasas_instance *instance,struct megasas_cmd *cmd) -{ -unsigned long flags; - -spin_lock_irqsave (&instance->mfi_pool_lock, flags); -__megasas_return_cmd (instance, cmd); -spin_unlock_irqrestore (&instance->mfi_pool_lock, flags); -} - - -/** * The following functions are defined for xscale * (deviceid : 1064R, PERC5) controllers */
@@ -1417,32 +1380,6 @@ megasas_build_ldio(struct megasas_instance *instance, struct scsi_cmnd *scp,return cmd->frame_count; } -/** -* megasas_is_ldio - Checks if the cmd is for logical drive -* @scmd: SCSI command -* -* Called by megasas_queue_command to find out if the command to be queued -* is a logical drive command -*/ -inline int megasas_is_ldio (struct scsi_cmnd *cmd) -{ -if (!MEGASAS_IS_LOGICAL (cmd)) -return 0 ; -switch (cmd->cmnd[0 ]) { -case READ_10 : -case WRITE_10 : -case READ_12 : -case WRITE_12 : -case READ_6 : -case WRITE_6 : -case READ_16 : -case WRITE_16 : -return 1 ; -default : -return 0 ; - } -} -/** * megasas_dump_pending_frames - Dumps the frame address of all pending cmds * in FW
drivers/scsi/megaraid/megaraid_sas_fusion.c +1 -37
@@ -54,43 +54,7 @@#include "megaraid_sas_fusion.h" #include "megaraid_sas.h" - -extern void megasas_free_cmds (struct megasas_instance *instance); -extern struct megasas_cmd *megasas_get_cmd (struct megasas_instance - *instance); -extern void -megasas_complete_cmd (struct megasas_instance *instance, -struct megasas_cmd *cmd,u8 alt_status); -int megasas_is_ldio (struct scsi_cmnd *cmd); -int -wait_and_poll (struct megasas_instance *instance,struct megasas_cmd *cmd, -int seconds); - -void -megasas_return_cmd (struct megasas_instance *instance,struct megasas_cmd *cmd); -int megasas_alloc_cmds (struct megasas_instance *instance); -int -megasas_clear_intr_fusion (struct megasas_register_set __iomem *regs); -int -megasas_issue_polled (struct megasas_instance *instance, -struct megasas_cmd *cmd); -void -megasas_check_and_restore_queue_depth (struct megasas_instance *instance); - -int megasas_transition_to_ready (struct megasas_instance *instance,int ocr); -void megaraid_sas_kill_hba (struct megasas_instance *instance); - -extern u32 megasas_dbg_lvl; -void megasas_sriov_heartbeat_handler (unsigned long instance_addr); -int megasas_sriov_start_heartbeat (struct megasas_instance *instance, -int initial); -void megasas_start_timer (struct megasas_instance *instance, -struct timer_list *timer, -void *fn,unsigned long interval); -extern struct megasas_mgmt_info megasas_mgmt_info; -extern int resetwaittime; - - +#include "megaraid_sas_internal.h" /** * megasas_enable_intr_fusion - Enables interrupts
drivers/scsi/megaraid/megaraid_sas_internal.h new file +100 -0
100 lines not on this page · raw message
Signature · 1 line
1.9.3