aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
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
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')
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_base.c20
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_scsih.c3
2 files changed, 8 insertions, 15 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;
diff --git a/drivers/scsi/mpt2sas/mpt2sas_scsih.c b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
index 8cd4ebb9349f..193e33e28e49 100644
--- a/drivers/scsi/mpt2sas/mpt2sas_scsih.c
+++ b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
@@ -8039,7 +8039,6 @@ _scsih_probe(struct pci_dev *pdev, const struct pci_device_id *id)
8039 goto out_attach_fail; 8039 goto out_attach_fail;
8040 } 8040 }
8041 8041
8042 scsi_scan_host(shost);
8043 if (ioc->is_warpdrive) { 8042 if (ioc->is_warpdrive) {
8044 if (ioc->mfg_pg10_hide_flag == MFG_PAGE10_EXPOSE_ALL_DISKS) 8043 if (ioc->mfg_pg10_hide_flag == MFG_PAGE10_EXPOSE_ALL_DISKS)
8045 ioc->hide_drives = 0; 8044 ioc->hide_drives = 0;
@@ -8053,8 +8052,8 @@ _scsih_probe(struct pci_dev *pdev, const struct pci_device_id *id)
8053 } 8052 }
8054 } else 8053 } else
8055 ioc->hide_drives = 0; 8054 ioc->hide_drives = 0;
8055 scsi_scan_host(shost);
8056 8056
8057 _scsih_probe_devices(ioc);
8058 return 0; 8057 return 0;
8059 8058
8060 out_attach_fail: 8059 out_attach_fail: