diff options
-rw-r--r-- | drivers/scsi/mpt2sas/mpt2sas_base.c | 20 | ||||
-rw-r--r-- | drivers/scsi/mpt2sas/mpt2sas_scsih.c | 3 |
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: |