@@ -1835,7 +1835,7 @@ megasas_queue_command(struct Scsi_Host *shost, struct scsi_cmnd *scmd)
18351835
18361836 if (instance -> unload == 1 ) {
18371837 scmd -> result = DID_NO_CONNECT << 16 ;
1838- scmd -> scsi_done (scmd );
1838+ scsi_done (scmd );
18391839 return 0 ;
18401840 }
18411841
@@ -1850,7 +1850,7 @@ megasas_queue_command(struct Scsi_Host *shost, struct scsi_cmnd *scmd)
18501850 return SCSI_MLQUEUE_HOST_BUSY ;
18511851 } else {
18521852 scmd -> result = DID_NO_CONNECT << 16 ;
1853- scmd -> scsi_done (scmd );
1853+ scsi_done (scmd );
18541854 return 0 ;
18551855 }
18561856 }
@@ -1859,15 +1859,15 @@ megasas_queue_command(struct Scsi_Host *shost, struct scsi_cmnd *scmd)
18591859 if (!mr_device_priv_data ||
18601860 (atomic_read (& instance -> adprecovery ) == MEGASAS_HW_CRITICAL_ERROR )) {
18611861 scmd -> result = DID_NO_CONNECT << 16 ;
1862- scmd -> scsi_done (scmd );
1862+ scsi_done (scmd );
18631863 return 0 ;
18641864 }
18651865
18661866 if (MEGASAS_IS_LOGICAL (scmd -> device )) {
18671867 ld_tgt_id = MEGASAS_TARGET_ID (scmd -> device );
18681868 if (instance -> ld_tgtid_status [ld_tgt_id ] == LD_TARGET_ID_DELETED ) {
18691869 scmd -> result = DID_NO_CONNECT << 16 ;
1870- scmd -> scsi_done (scmd );
1870+ scsi_done (scmd );
18711871 return 0 ;
18721872 }
18731873 }
@@ -1898,7 +1898,7 @@ megasas_queue_command(struct Scsi_Host *shost, struct scsi_cmnd *scmd)
18981898 return instance -> instancet -> build_and_issue_cmd (instance , scmd );
18991899
19001900 out_done :
1901- scmd -> scsi_done (scmd );
1901+ scsi_done (scmd );
19021902 return 0 ;
19031903}
19041904
@@ -2831,7 +2831,7 @@ static int megasas_wait_for_outstanding(struct megasas_instance *instance)
28312831 reset_index , reset_cmd ,
28322832 reset_cmd -> scmd -> cmnd [0 ]);
28332833
2834- reset_cmd -> scmd -> scsi_done (reset_cmd -> scmd );
2834+ scsi_done (reset_cmd -> scmd );
28352835 megasas_return_cmd (instance , reset_cmd );
28362836 } else if (reset_cmd -> sync_cmd ) {
28372837 dev_notice (& instance -> pdev -> dev , "%p synch cmds"
@@ -3689,7 +3689,7 @@ megasas_complete_cmd(struct megasas_instance *instance, struct megasas_cmd *cmd,
36893689 atomic_dec (& instance -> fw_outstanding );
36903690
36913691 scsi_dma_unmap (cmd -> scmd );
3692- cmd -> scmd -> scsi_done (cmd -> scmd );
3692+ scsi_done (cmd -> scmd );
36933693 megasas_return_cmd (instance , cmd );
36943694
36953695 break ;
@@ -3735,7 +3735,7 @@ megasas_complete_cmd(struct megasas_instance *instance, struct megasas_cmd *cmd,
37353735 atomic_dec (& instance -> fw_outstanding );
37363736
37373737 scsi_dma_unmap (cmd -> scmd );
3738- cmd -> scmd -> scsi_done (cmd -> scmd );
3738+ scsi_done (cmd -> scmd );
37393739 megasas_return_cmd (instance , cmd );
37403740
37413741 break ;
@@ -3987,9 +3987,9 @@ process_fw_state_change_wq(struct work_struct *work)
39873987 u32 wait ;
39883988 unsigned long flags ;
39893989
3990- if (atomic_read (& instance -> adprecovery ) != MEGASAS_ADPRESET_SM_INFAULT ) {
3990+ if (atomic_read (& instance -> adprecovery ) != MEGASAS_ADPRESET_SM_INFAULT ) {
39913991 dev_notice (& instance -> pdev -> dev , "error, recovery st %x\n" ,
3992- atomic_read (& instance -> adprecovery ));
3992+ atomic_read (& instance -> adprecovery ));
39933993 return ;
39943994 }
39953995
@@ -4060,10 +4060,8 @@ megasas_deplete_reply_queue(struct megasas_instance *instance,
40604060 u32 mfiStatus ;
40614061 u32 fw_state ;
40624062
4063- if ((mfiStatus = instance -> instancet -> check_reset (instance ,
4064- instance -> reg_set )) == 1 ) {
4063+ if (instance -> instancet -> check_reset (instance , instance -> reg_set ) == 1 )
40654064 return IRQ_HANDLED ;
4066- }
40674065
40684066 mfiStatus = instance -> instancet -> clear_intr (instance );
40694067 if (mfiStatus == 0 ) {
@@ -5194,9 +5192,9 @@ static void megasas_update_ext_vd_details(struct megasas_instance *instance)
51945192 fusion -> current_map_sz = ventura_map_sz ;
51955193 fusion -> max_map_sz = ventura_map_sz ;
51965194 } else {
5197- fusion -> old_map_sz = sizeof ( struct MR_FW_RAID_MAP ) +
5198- ( sizeof (struct MR_LD_SPAN_MAP ) *
5199- ( instance -> fw_supported_vd_count - 1 ) );
5195+ fusion -> old_map_sz =
5196+ struct_size ( (struct MR_FW_RAID_MAP * ) 0 , ldSpanMap ,
5197+ instance -> fw_supported_vd_count );
52005198 fusion -> new_map_sz = sizeof (struct MR_FW_RAID_MAP_EXT );
52015199
52025200 fusion -> max_map_sz =
@@ -5829,10 +5827,10 @@ megasas_setup_jbod_map(struct megasas_instance *instance)
58295827{
58305828 int i ;
58315829 struct fusion_context * fusion = instance -> ctrl_context ;
5832- u32 pd_seq_map_sz ;
5830+ size_t pd_seq_map_sz ;
58335831
5834- pd_seq_map_sz = sizeof ( struct MR_PD_CFG_SEQ_NUM_SYNC ) +
5835- ( sizeof ( struct MR_PD_CFG_SEQ ) * ( MAX_PHYSICAL_DEVICES - 1 ) );
5832+ pd_seq_map_sz = struct_size (( struct MR_PD_CFG_SEQ_NUM_SYNC * ) 0 , seq ,
5833+ MAX_PHYSICAL_DEVICES );
58365834
58375835 instance -> use_seqnum_jbod_fp =
58385836 instance -> support_seqnum_jbod_fp ;
@@ -5915,10 +5913,6 @@ static void megasas_setup_reply_map(struct megasas_instance *instance)
59155913static
59165914int megasas_get_device_list (struct megasas_instance * instance )
59175915{
5918- memset (instance -> pd_list , 0 ,
5919- (MEGASAS_MAX_PD * sizeof (struct megasas_pd_list )));
5920- memset (instance -> ld_ids , 0xff , MEGASAS_MAX_LD_IDS );
5921-
59225916 if (instance -> enable_fw_dev_list ) {
59235917 if (megasas_host_device_list_query (instance , true))
59245918 return FAILED ;
@@ -7265,7 +7259,7 @@ int megasas_alloc_ctrl_dma_buffers(struct megasas_instance *instance)
72657259
72667260 if (!fusion -> ioc_init_request ) {
72677261 dev_err (& pdev -> dev ,
7268- "Failed to allocate PD list buffer \n" );
7262+ "Failed to allocate ioc init request \n" );
72697263 return - ENOMEM ;
72707264 }
72717265
@@ -7484,7 +7478,6 @@ static inline void megasas_init_ctrl_params(struct megasas_instance *instance)
74847478 (instance -> pdev -> device == PCI_DEVICE_ID_LSI_SAS0071SKINNY ))
74857479 instance -> flag_ieee = 1 ;
74867480
7487- megasas_dbg_lvl = 0 ;
74887481 instance -> flag = 0 ;
74897482 instance -> unload = 1 ;
74907483 instance -> last_time = 0 ;
@@ -8019,7 +8012,7 @@ static void megasas_detach_one(struct pci_dev *pdev)
80198012 struct Scsi_Host * host ;
80208013 struct megasas_instance * instance ;
80218014 struct fusion_context * fusion ;
8022- u32 pd_seq_map_sz ;
8015+ size_t pd_seq_map_sz ;
80238016
80248017 instance = pci_get_drvdata (pdev );
80258018
@@ -8091,9 +8084,9 @@ static void megasas_detach_one(struct pci_dev *pdev)
80918084
80928085 if (instance -> adapter_type != MFI_SERIES ) {
80938086 megasas_release_fusion (instance );
8094- pd_seq_map_sz = sizeof ( struct MR_PD_CFG_SEQ_NUM_SYNC ) +
8095- ( sizeof (struct MR_PD_CFG_SEQ ) *
8096- ( MAX_PHYSICAL_DEVICES - 1 ) );
8087+ pd_seq_map_sz =
8088+ struct_size ( (struct MR_PD_CFG_SEQ_NUM_SYNC * ) 0 ,
8089+ seq , MAX_PHYSICAL_DEVICES );
80978090 for (i = 0 ; i < 2 ; i ++ ) {
80988091 if (fusion -> ld_map [i ])
80998092 dma_free_coherent (& instance -> pdev -> dev ,
@@ -8815,33 +8808,26 @@ static
88158808int megasas_update_device_list (struct megasas_instance * instance ,
88168809 int event_type )
88178810{
8818- int dcmd_ret = DCMD_SUCCESS ;
8811+ int dcmd_ret ;
88198812
88208813 if (instance -> enable_fw_dev_list ) {
8821- dcmd_ret = megasas_host_device_list_query (instance , false);
8822- if (dcmd_ret != DCMD_SUCCESS )
8823- goto out ;
8814+ return megasas_host_device_list_query (instance , false);
88248815 } else {
88258816 if (event_type & SCAN_PD_CHANNEL ) {
88268817 dcmd_ret = megasas_get_pd_list (instance );
8827-
88288818 if (dcmd_ret != DCMD_SUCCESS )
8829- goto out ;
8819+ return dcmd_ret ;
88308820 }
88318821
88328822 if (event_type & SCAN_VD_CHANNEL ) {
88338823 if (!instance -> requestorId ||
88348824 megasas_get_ld_vf_affiliation (instance , 0 )) {
8835- dcmd_ret = megasas_ld_list_query (instance ,
8825+ return megasas_ld_list_query (instance ,
88368826 MR_LD_QUERY_TYPE_EXPOSED_TO_HOST );
8837- if (dcmd_ret != DCMD_SUCCESS )
8838- goto out ;
88398827 }
88408828 }
88418829 }
8842-
8843- out :
8844- return dcmd_ret ;
8830+ return DCMD_SUCCESS ;
88458831}
88468832
88478833/**
@@ -8971,7 +8957,7 @@ megasas_aen_polling(struct work_struct *work)
89718957 sdev1 = scsi_device_lookup (instance -> host ,
89728958 MEGASAS_MAX_PD_CHANNELS +
89738959 (ld_target_id / MEGASAS_MAX_DEV_PER_CHANNEL ),
8974- (ld_target_id - MEGASAS_MAX_DEV_PER_CHANNEL ),
8960+ (ld_target_id % MEGASAS_MAX_DEV_PER_CHANNEL ),
89758961 0 );
89768962 if (sdev1 )
89778963 megasas_remove_scsi_device (sdev1 );
@@ -9069,6 +9055,7 @@ static int __init megasas_init(void)
90699055 */
90709056 pr_info ("megasas: %s\n" , MEGASAS_VERSION );
90719057
9058+ megasas_dbg_lvl = 0 ;
90729059 support_poll_for_event = 2 ;
90739060 support_device_change = 1 ;
90749061 support_nvme_encapsulation = true;
0 commit comments