aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/mpt2sas/mpt2sas_base.c
diff options
context:
space:
mode:
authornagalakshmi.nandigama@lsi.com <nagalakshmi.nandigama@lsi.com>2011-12-12 22:59:15 -0500
committerJames Bottomley <JBottomley@Parallels.com>2011-12-15 01:57:43 -0500
commit2cb6fc8c014b9b00c4487a79b8f6ed0da4121f45 (patch)
tree3c3110741c04f2d8721dad2d55b78931a04fc70d /drivers/scsi/mpt2sas/mpt2sas_base.c
parentdddaaf793d73f1e3dc931b2040f1578b1bdf0ece (diff)
[SCSI] mpt2sas: Removed redundant calling of _scsih_probe_devices() from _scsih_probe
Removed redundant calling of _scsih_probe_devices() from _scsih_probe as it is getting called from _scsih_scan_finished. Also moved the function scsi_scan_host(shost) to get called after the volumes on warp drive are reported to the OS. Otherwise by the time the (ioc->hide_drives) flags is set, the volumes on warp drive are reported to the OS already. Also modified the initialization of reply queues only in case of driver load time in the function _base_make_ioc_operational(). Signed-off-by: Nagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/mpt2sas/mpt2sas_base.c')
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_base.c20
1 files changed, 7 insertions, 13 deletions
diff --git a/drivers/scsi/mpt2sas/mpt2sas_base.c b/drivers/scsi/mpt2sas/mpt2sas_base.c
index 4819181876fd..0b2c95583660 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_base.c
+++ b/drivers/scsi/mpt2sas/mpt2sas_base.c
@@ -4099,7 +4099,8 @@ _base_make_ioc_operational(struct MPT2SAS_ADAPTER *ioc, int sleep_flag)
4099 ioc->reply_free[i] = cpu_to_le32(reply_address); 4099 ioc->reply_free[i] = cpu_to_le32(reply_address);
4100 4100
4101 /* initialize reply queues */ 4101 /* initialize reply queues */
4102 _base_assign_reply_queues(ioc); 4102 if (ioc->is_driver_loading)
4103 _base_assign_reply_queues(ioc);
4103 4104
4104 /* initialize Reply Post Free Queue */ 4105 /* initialize Reply Post Free Queue */
4105 reply_post_free = (long)ioc->reply_post_free; 4106 reply_post_free = (long)ioc->reply_post_free;
@@ -4147,24 +4148,17 @@ _base_make_ioc_operational(struct MPT2SAS_ADAPTER *ioc, int sleep_flag)
4147 4148
4148 4149
4149 if (ioc->is_driver_loading) { 4150 if (ioc->is_driver_loading) {
4150 4151 if (ioc->is_warpdrive && ioc->manu_pg10.OEMIdentifier
4151 4152 == 0x80) {
4152
4153 ioc->wait_for_discovery_to_complete =
4154 _base_determine_wait_on_discovery(ioc);
4155 return r; /* scan_start and scan_finished support */
4156 }
4157
4158
4159 if (ioc->wait_for_discovery_to_complete && ioc->is_warpdrive) {
4160 if (ioc->manu_pg10.OEMIdentifier == 0x80) {
4161 hide_flag = (u8) (ioc->manu_pg10.OEMSpecificFlags0 & 4153 hide_flag = (u8) (ioc->manu_pg10.OEMSpecificFlags0 &
4162 MFG_PAGE10_HIDE_SSDS_MASK); 4154 MFG_PAGE10_HIDE_SSDS_MASK);
4163 if (hide_flag != MFG_PAGE10_HIDE_SSDS_MASK) 4155 if (hide_flag != MFG_PAGE10_HIDE_SSDS_MASK)
4164 ioc->mfg_pg10_hide_flag = hide_flag; 4156 ioc->mfg_pg10_hide_flag = hide_flag;
4165 } 4157 }
4158 ioc->wait_for_discovery_to_complete =
4159 _base_determine_wait_on_discovery(ioc);
4160 return r; /* scan_start and scan_finished support */
4166 } 4161 }
4167
4168 r = _base_send_port_enable(ioc, sleep_flag); 4162 r = _base_send_port_enable(ioc, sleep_flag);
4169 if (r) 4163 if (r)
4170 return r; 4164 return r;