diff options
Diffstat (limited to 'drivers/scsi/mpt2sas')
-rw-r--r-- | drivers/scsi/mpt2sas/mpt2sas_base.c | 2 | ||||
-rw-r--r-- | drivers/scsi/mpt2sas/mpt2sas_scsih.c | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/drivers/scsi/mpt2sas/mpt2sas_base.c b/drivers/scsi/mpt2sas/mpt2sas_base.c index 9ad4b48a9b62..b7b6285a3061 100644 --- a/drivers/scsi/mpt2sas/mpt2sas_base.c +++ b/drivers/scsi/mpt2sas/mpt2sas_base.c | |||
@@ -3521,7 +3521,9 @@ mpt2sas_base_free_resources(struct MPT2SAS_ADAPTER *ioc) | |||
3521 | __func__)); | 3521 | __func__)); |
3522 | 3522 | ||
3523 | _base_mask_interrupts(ioc); | 3523 | _base_mask_interrupts(ioc); |
3524 | ioc->shost_recovery = 1; | ||
3524 | _base_make_ioc_ready(ioc, CAN_SLEEP, SOFT_RESET); | 3525 | _base_make_ioc_ready(ioc, CAN_SLEEP, SOFT_RESET); |
3526 | ioc->shost_recovery = 0; | ||
3525 | if (ioc->pci_irq) { | 3527 | if (ioc->pci_irq) { |
3526 | synchronize_irq(pdev->irq); | 3528 | synchronize_irq(pdev->irq); |
3527 | free_irq(ioc->pci_irq, ioc); | 3529 | free_irq(ioc->pci_irq, ioc); |
diff --git a/drivers/scsi/mpt2sas/mpt2sas_scsih.c b/drivers/scsi/mpt2sas/mpt2sas_scsih.c index f3ce9b1825b1..61199759f8d1 100644 --- a/drivers/scsi/mpt2sas/mpt2sas_scsih.c +++ b/drivers/scsi/mpt2sas/mpt2sas_scsih.c | |||
@@ -1979,7 +1979,7 @@ mpt2sas_scsih_issue_tm(struct MPT2SAS_ADAPTER *ioc, u16 handle, uint lun, | |||
1979 | return; | 1979 | return; |
1980 | } | 1980 | } |
1981 | 1981 | ||
1982 | if (ioc->shost_recovery) { | 1982 | if (ioc->shost_recovery || ioc->remove_host) { |
1983 | printk(MPT2SAS_INFO_FMT "%s: host reset in progress!\n", | 1983 | printk(MPT2SAS_INFO_FMT "%s: host reset in progress!\n", |
1984 | __func__, ioc->name); | 1984 | __func__, ioc->name); |
1985 | return; | 1985 | return; |
@@ -4246,7 +4246,7 @@ _scsih_sas_topology_change_event(struct MPT2SAS_ADAPTER *ioc, | |||
4246 | _scsih_sas_topology_change_event_debug(ioc, event_data); | 4246 | _scsih_sas_topology_change_event_debug(ioc, event_data); |
4247 | #endif | 4247 | #endif |
4248 | 4248 | ||
4249 | if (ioc->shost_recovery) | 4249 | if (ioc->shost_recovery || ioc->remove_host) |
4250 | return; | 4250 | return; |
4251 | 4251 | ||
4252 | if (!ioc->sas_hba.num_phys) | 4252 | if (!ioc->sas_hba.num_phys) |
@@ -4285,7 +4285,7 @@ _scsih_sas_topology_change_event(struct MPT2SAS_ADAPTER *ioc, | |||
4285 | "expander event\n", ioc->name)); | 4285 | "expander event\n", ioc->name)); |
4286 | return; | 4286 | return; |
4287 | } | 4287 | } |
4288 | if (ioc->shost_recovery) | 4288 | if (ioc->shost_recovery || ioc->remove_host) |
4289 | return; | 4289 | return; |
4290 | phy_number = event_data->StartPhyNum + i; | 4290 | phy_number = event_data->StartPhyNum + i; |
4291 | reason_code = event_data->PHY[i].PhyStatus & | 4291 | reason_code = event_data->PHY[i].PhyStatus & |