aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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: