aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/mpt2sas
diff options
context:
space:
mode:
authorKashyap, Desai <kashyap.desai@lsi.com>2010-03-17 06:53:36 -0400
committerJames Bottomley <James.Bottomley@suse.de>2010-04-11 10:23:57 -0400
commit6558bbb1457d2f33e233f9ed7bcf17fe96b93878 (patch)
tree004a74e35955e857420990782c9ea996246ba943 /drivers/scsi/mpt2sas
parent89009fbb7d2df37536c8dc932fdead4189783f92 (diff)
[SCSI] mpt2sas: Early return from function if shost is in recovery.
Aded checks for shost_recovery flag for early return from function. Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/mpt2sas')
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_base.c2
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_scsih.c6
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 &